Lab

Real-time 3D and graphics experiments, running live in your browser. Choose an experiment to explore.

Marsh OSYour own corner of the marsh. Open a project, write a note, or start an expedition. Open desktop →
Glowing mushroom canopies and the crystal sanctum in Marsh Expedition
PLAY IN YOUR BROWSER

Marsh Expedition

A little world beyond the Lab. Walk the mushroom trails, help the marsh's inhabitants, and record what you find in your field journal. Enter the marsh Keyboard or touch · progress saved on this device
Live · THREE.JS

Spore Field

A glowing wireframe core inside a drifting particle shell that parallaxes to your cursor.

Specimen Stamp

LB-02 // SEAL
[ STATUS ]

Shader Studies

AFTER THEBOOKOFSHADERS.COM

Working through The Book of Shaders, one fragment at a time. Every tile is a live GLSL program running in your GPU right now, not a video.

S-01 Shaping plotting smoothstep, the first spell
S-02 Distance fields everything is a distance
S-03 Noise domain-warped fbm smoke
S-04 Cellular voronoi territories, breathing
S-05 Halftone the mastheads' print screen, exposed
S-06 Fireworks phosphor bursts on a slow gravity well
S-07 Sin Sea raymarched sin-carved plane

Triptych

RAIN · WIND · ORBIT
CASCADE
CHIME
SPINNER

Wisp

THE MARSH'S LIL GUY
WISP A little will-o'-the-wisp who lives in the lab. Dot-matrix face, glowing pupils that follow your cursor, four coats to wear. He blinks. He gets happy. That's the whole job. GO SAY HI →

Alpha

SHIPPED · LIVE
ALPHA · THE INSPO BOARD A shared inspiration board I built and run at alpha.aaronmilligan.ai: paste a link, it becomes a pin on a living wall. Next.js App Router on Vercel with Neon serverless Postgres behind it. The schema self-bootstraps on first write, so the board spins up from an empty database. A REST surface (/api/links) with validated fetch windows feeds a client board that polls for new pins and reconciles server truth with optimistic state; the wall renders category sections plus a Fresh row of the latest drops, and the pin count comes from a real SELECT count(*) rather than the fetch window, so it never lies at scale. VISIT THE BOARD →

Workshop

SHIPPED · LIVE
WORKSHOP · THE PROCEDURAL 3D BENCH An image-to-3D workbench I built and run at workshop.aaronmilligan.ai: drop in a reference image and it becomes a build brief for a code-only three.js model — every part authored as procedural geometry, no mesh files shipped. Ten models live on the bench, from a violet-flame witch to a parts-registry gnome generator with species dice and a seeded corvette. Every model exposes a recipe: copy it, share it as a permalink (#/m/id?r=…), save looks, or roll a 12-variant contact sheet from one seed. Rapier physics can blow a model apart and ease it home; GLB and WebM export straight off the stage. Behind the dropzone sits a growing knowledge base of every geometry trap the bench has caught, plus a vision intake that reads new references against a JSON schema and drafts the build brief itself. ENTER THE WORKSHOP →

Sanrio Rooms

SHIPPED · LIVE
SANRIO ROOMS · SPIN + GACHA A fan-built pair of interactive three.js rooms for thirteen procedural characters. Spin Room puts the full family on individual zabuton turntables in one shared WebGL scene; Gacha Corner lets you insert a coin, crank the machine, collect pulls, trade dupes, trigger a matsuri parade, and chase the 1-in-10 secret gold capsule. PLAY THE ROOMS →

Data Stream

Singularity

SINGULARITY A black hole that plays dubstep. A full-length EDM track synthesized live in WebAudio drives a curved-ray accretion disk: beat-synced shockwaves, polar jets, and a drop that bends light. ▶ ENTER THE HORIZON →

Stickers

MARSH CAT STICKERS The footer's binary cat, rendered as a sheet of two dozen animated pixel stickers — she blinks, waves, moonwalks, backflips, and glitches. Click one to poke her; double-click to save it as a GIF, encoded right in your browser by a hand-rolled LZW/GIF89a writer. OPEN THE STICKER SHEET →
Marsh terminal
Choose a command above or type below. ESC closes.