Lab
The Lab
Interactive experiments and live demos. Launch any of them right here.
Small, self-contained things I’ve built: music theory, retro computing, generative art, systems, and AI agents. Click a card to run it in the browser; most link to a full write-up over in projects.
Showing all 21 experiments
Circle of Fifths
Click around the circle of fifths to hear each key and see how they relate.
Audio
Circle of Fifths
Click around the circle of fifths to hear each key and see how they relate.
Circle of Fifths
Perfect Fifth: G
Perfect Fourth: F
Click any key to hear its root note. The outer ring shows major keys, inner ring shows relative minors.
DosKit
Boot classic DOS software in your browser via WebAssembly. One click, no install.
Retro Computing
DosKit
Boot classic DOS software in your browser via WebAssembly. One click, no install.
DOS Emulator Preview
Gopher Client
Browse Gopherspace in a modern client. The pre-web protocol, live.
Retro Computing
Gopher Client
Browse Gopherspace in a modern client. The pre-web protocol, live.
Gopherspace Browser
The MCP server provides AI access to both Gopher and Gemini protocols - the "small internet" movement.
Retro Floppy
A tactile 3.5-inch floppy you can label and flip. Pure CSS nostalgia.
Retro Computing
Retro Floppy
A tactile 3.5-inch floppy you can label and flip. Pure CSS nostalgia.
Zero-Crust Architecture
Step through a zero-trust edge architecture as an interactive diagram.
Systems
Zero-Crust Architecture
Step through a zero-trust edge architecture as an interactive diagram.
Architecture Explorer
Trusted process: MainStore, PaymentService, BroadcastService, IPC handlers
Pattern: Centralized State + Command Handler
Security: Zod validation, sender verification
Click nodes to explore. Watch IPC messages flow between processes.
Accessibility Techniques
Toggle accessibility techniques on and off to feel the difference each makes.
Accessibility
Accessibility Techniques
Toggle accessibility techniques on and off to feel the difference each makes.
Accessibility Features
Documentary Film
An archive of civil rights documentaries spanning five decades.
Tab through the buttons to see focus rings. The site uses semantic HTML and Schema.org markup for discoverability.
Frostpane
A frosted-glass panel component you can tune in real time.
Systems
Frostpane
A frosted-glass panel component you can tune in real time.
Interactive Demo
Liquid Glass
Adjust the controls to see real-time changes to the frosted glass effect.
Electromagnetic Spectrum
Sweep the electromagnetic spectrum from radio to gamma rays.
Generative
Electromagnetic Spectrum
Sweep the electromagnetic spectrum from radio to gamma rays.
Spectrum Explorer
Frequency: 430-750 THz
Energy: 1.7-3.1 eV
The only portion of the spectrum visible to human eyes.
Uzumaki
A hypnotic, interactive generative spiral.
Generative
Uzumaki
A hypnotic, interactive generative spiral.
AT Protocol MCP Tools
Call AT Protocol MCP tools against Bluesky and watch the structured responses.
AI Agents
AT Protocol MCP Tools
Call AT Protocol MCP tools against Bluesky and watch the structured responses.
MCP Tool Explorer
{
"tool": "get_profile",
"handle": "bsky.app"
}Fetch a user profile by handle or DID
This is a simulated demo. The actual MCP server processes requests from AI assistants like Claude.
NewSkills Radar
A self-cycling radar of the stack. Watch each category sweep into focus, or grab the wheel.
Generative
Skills Radar
A self-cycling radar of the stack. Watch each category sweep into focus, or grab the wheel.
Frontend Skills
NewActivityPub MCP
Call Fediverse MCP tools against Mastodon and watch WebFinger discovery and outbox responses come back.
AI Agents
ActivityPub MCP
Call Fediverse MCP tools against Mastodon and watch WebFinger discovery and outbox responses come back.
MCP Tool Explorer
{
"tool": "webfinger_lookup",
"account": "@user@mastodon.social"
}Discover a user via WebFinger lookup
This is a simulated demo. The actual MCP server processes requests from AI assistants like Claude.
NewOpenZIM MCP
Search millions of Wikipedia articles through MCP with the cable unplugged. Zero network.
AI AgentsSystems
OpenZIM MCP
Search millions of Wikipedia articles through MCP with the cable unplugged. Zero network.
MCP Tool Explorer
{
"tool": "zim_search",
"query": "quantum computing",
"limit": 5
}Search for articles in the ZIM knowledge base
This is a simulated demo. The actual MCP server processes requests from AI assistants like Claude.
NewClarissa
Watch a terminal agent reason and act: read a file, run git, diff, fetch the web. The ReAct loop, tool by tool.
AI Agents
Clarissa
Watch a terminal agent reason and act: read a file, run git, diff, fetch the web. The ReAct loop, tool by tool.
MCP Tool Explorer
{
"tool": "read_file",
"path": "./src/agent.ts"
}Read the contents of a file
This is a simulated demo. The actual MCP server processes requests from AI assistants like Claude.
NewClarissaBot
Ask a plain-English question about a vehicle and watch the agent fan out to live NHTSA tools: recalls, complaints, crash ratings.
AI Agents
ClarissaBot
Ask a plain-English question about a vehicle and watch the agent fan out to live NHTSA tools: recalls, complaints, crash ratings.
MCP Tool Explorer
{
"tool": "check_recalls",
"make": "Honda",
"model": "Civic",
"year": 2019
}Find recall campaigns affecting a vehicle
This is a simulated demo. The actual MCP server processes requests from AI assistants like Claude.
NewStep Sequencer
Tap out a beat on a 16-step grid and hear it loop. Drums and bass, no install.
AudioGenerative
Step Sequencer
Tap out a beat on a 16-step grid and hear it loop. Drums and bass, no install.
Step Sequencer
Stopped
Click cells to arm steps, then hit Play. Sounds are synthesized live with the Web Audio API — no samples, no install.
NewContrast Lab
Drag two colors together and watch the WCAG ratio pass or fail in real time.
AccessibilityGenerative
Contrast Lab
Drag two colors together and watch the WCAG ratio pass or fail in real time.
Contrast Lab
The quick brown fox
jumps over the lazy dog
Sample text at 4.83:1
Ratios follow the WCAG 2.x relative-luminance formula. AA needs 4.5:1 for normal text (3:1 large); AAA needs 7:1 (4.5:1 large). “Suggest a fix” nudges the text color toward black or white until AA-normal passes.
NewCRT Terminal
Type into a green-phosphor terminal with scanlines, flicker, and a blinking block cursor.
Retro ComputingGenerative
CRT Terminal
Type into a green-phosphor terminal with scanlines, flicker, and a blinking block cursor.
CRT Terminal
Try help, about, or echo hi. It is all client-side — no real shell behind the glass.
NewSubnet Calculator
Drag the CIDR slider and watch network, broadcast, and host range recompute bit by bit.
Systems
Subnet Calculator
Drag the CIDR slider and watch network, broadcast, and host range recompute bit by bit.
Subnet Calculator
NewReaction-Diffusion
Paint into a Gray-Scott reaction and watch organic Turing patterns spread.
GenerativeSystems
Reaction-Diffusion
Paint into a Gray-Scott reaction and watch organic Turing patterns spread.
Reaction-Diffusion
Simulation paused
Paint into a Gray-Scott reaction and watch organic Turing patterns spread.
NewLexicon Inspector
Pick an AT Protocol record type and see the lexicon schema and a sample record side by side.
AI AgentsSystems
Lexicon Inspector
Pick an AT Protocol record type and see the lexicon schema and a sample record side by side.
Lexicon Inspector
{
"lexicon": 1,
"id": "app.bsky.feed.post",
"type": "record",
"key": "tid",
"record": {
"type": "object",
"required": [
"text",
"createdAt"
],
"properties": {
"text": {
"type": "string",
"description": "Post body (max 300 graphemes)"
},
"createdAt": {
"type": "string",
"format": "datetime"
},
"langs": {
"type": "array",
"description": "BCP-47 language tags"
},
"reply": {
"type": "object",
"description": "Parent + root refs"
}
}
}
}{
"$type": "app.bsky.feed.post",
"text": "Hello from the AT Protocol.",
"createdAt": "2026-06-27T10:15:00.000Z",
"langs": [
"en"
]
}Lexicon is the AT Protocol schema system. Each record is validated against its NSID's schema (required fields + types) before it's written to a repo. Schemas here are faithful, abbreviated subsets of the real Bluesky lexicons.
No experiments match this filter.
Want the full story behind these?
Most experiments started life as a project. Read the write-ups, or get in touch.






