Visual projects exploring control, trust, money, and who wins as AI reshapes everything — the lab for Sideband.
| Project | What it is |
|---|---|
| The AI market hyperscalers can't reach | Armada raised $230M for modular AI data centers on military bases, oil platforms, and air-gapped sites—a map of how far AI's market extends beyond the cloud |
| Task complete. Safety violated. | 13 production-grade agents run against BeSafe-Bench. None cleared 40% safe task completion, and the best performers were the most dangerous |
| The return of the computer | Infrastructure primitives shrank for three decades—30-minute sessions down to 10ms hops. Agents reversed the curve back to hour-long tasks |
| Payment Required | x402 routes every agent payment through Coinbase to verify and settle; L402 routes through no one. The protocol decides who can shut your agent off |
| Agent-Era Infrastructure Map | Companies and protocols scored on openness and distribution across five layers of the emerging agent stack |
| U.S. GDP Status | A status page for the economy where the components are AI providers and the metric is GDP |
| Three-Body Problem | A force simulation of the three-way gravitational fight between state regulators, card networks, and open protocols |
- Astro — static site generator, renders the shell
- React — component islands (map)
- D3.js — force simulations, vendored for supply chain integrity
- Anthropic SDK — signal extraction for the map scoring pipeline
- Vercel — deployment
Projects are framework-agnostic. Each one uses whatever fits — React, vanilla JS, D3, or plain HTML. The Astro shell wraps them with a shared header and meta tags.
git clone https://github.com/shawnyeager/sideband-lab.git
cd sideband-lab
npm install
npm run devEverything is static. You don't need any environment variables to run the site; the map's data is baked into the build from data/map-data.json. The only key you'll need is ANTHROPIC_API_KEY (see .env.example), and only if you want to re-run the map scoring pipeline.
Each project is a standalone HTML page in src/projects/[slug].html, wrapped by an Astro route that extracts its <head>/<body> and re-injects them inside the shared shell.
- Create
src/pages/[slug]/index.astro— readssrc/projects/[slug].htmland renders it through theProjectlayout - Create
src/projects/[slug].html— your project's standalone HTML (must have<head>and<body>tags) - Add an entry to
src/content/projects.jsonwithstatus: "draft" - Add a thumbnail at
src/assets/projects/[slug].pngand an OG image atpublic/img/og/[slug].png - Put any static assets the project references (JS, fonts, images) in
public/[slug]/ - Set
status: "live"when ready
docs/new-project-checklist.md is the single source of truth for the full process — file structure, projects.json fields, CSS conventions, voice rules, image attributes, and the build verification one-liner. CLAUDE.md summarizes the conventions.
src/ Source code — components, pages, layouts, styles, project HTML
public/ Static assets — fonts, images, per-project assets
scripts/ CLI tools — screenshot capture, map scoring, OG capture
data/ Map data and scores (map-data.json)
docs/ New-project checklist and conventions
Entity scores are computed deterministically from structured signals. An LLM reads source material and extracts factual signals (license type, governance model, operator count, etc.) — it never picks a score. A weighted formula then computes the 0-100 position on each axis from those signals.
X-axis (Closed → Open): spec_license, governance, permission_required, independent_implementations, fork_modify_allowed, tos_restrictions
Y-axis (Centralized → Distributed): deployment_model, operator_count, single_point_of_failure, self_hostable, works_offline, central_coordination_required
Same evidence in, same score out. Each score is auditable: you can trace exactly which signal contributed how many points and what source text supported it. Signal definitions and weights live in scripts/score-entities.mjs; the scored entities live in data/map-data.json.
Issues and PRs are welcome. If you spot a bug, have a data correction for the map, or want to propose a new project idea, open an issue.