The remix is the on-ramp
Last night a drum machine turned into four apps, and none of them started from a blank page.
It began with a bug fix. Dr. Dea's Drum Machine — a classic 16-step sequencer with synthesized kicks, snares, and cowbells — had two copies of its playback scheduler fighting over the same timer. We collapsed them into one, gave it a four-on-the-floor default so PLAY makes a sound immediately, and shipped it. That's maintenance.
The interesting part is what happened next, because every step after that was a remix — and the chain those remixes formed became the homepage on-ramp itself.
Add a voice, not a rewrite
The 303 Edition keeps the drums byte-for-byte and grafts on a TB-303-style acid synth: per-step gate/note/accent/slide, a resonant low-pass filter with the classic envelope squelch. The trick isn't the synth — it's that the bassline is locked to the same clock as the drums.
That's where the boring bug fix paid off. Once a single setInterval owns playback, a second instrument is just another line in the same tick:
js// one scheduler, both instruments — no second timer to drift against
const trigger = (step) => {
for (const t of drumTracks) if (t.steps[step]) playDrum(t, now);
const s = synth.steps[step];
if (s.gate) playAcid(s.note, s.accent, s.slide, now); // rides the same step
};
Two schedulers had been the problem in the drum machine. Collapsing them to one is what made the remix a graft instead of a rewrite. The drums are, verifiably in the diff, the original bytes.
Change the dimension
The Voxel 303 takes that synth and rebuilds its controls in 3D. Fixed camera, a panel of stubby voxel knobs — CUTOFF, RESONANCE, ENV MOD, DECAY, TEMPO, ACCENT — that you grab and drag with a finger or a mouse while the acid line morphs live underneath. Same sound engine, new body. A Raycaster picks which knob group your pointer hit; a vertical drag turns it; the value feeds straight into the synth params on the next step.
Get posts like this in your inbox
One email field. Real updates. No algorithm required.
Make it a place — then let people move in it
The Daft Punk studio drops the same beat into a voxel disco: a pulsing checkerboard dancefloor, a mirror ball, two boxy robots (one gold helmet, one silver) bobbing on the kick. And the dance floor version hands you the gold robot — WASD to move, SPACE for a jump-and-spin.
Making the scene playable needed no refactor, and the reason is a small, satisfying one. The auto-dance loop only ever animated the robots' height and rotation — it never touched their x/z position. So WASD-driven movement just wrote to the coordinate the animation left alone, and composed on top for free:
js// the bob loop set y + rotation every frame, but never x/z —
// so player movement lives in the gap it left open
dancer.position.x += mvx * speed * dt; // WASD, clamped to the floor
dancer.position.y = baseY + kickBob + danceJump; // override the bob for the player bot
The chain becomes the front door
Here's the thing we keep relearning: a remix chain is a better tutorial than a tutorial. Each hop changes exactly one idea — add a synth, move the controls into 3D, make the space walkable — while everything else stays familiar. Nobody plans a voxel disco. You arrive one remix at a time.
That is also exactly the shape a homepage on-ramp wants. So we made the chain the on-ramp. The /start lanes are a graph of curated remix edges, and an edge is just three fields:
js{ source: "voxel-303", chipLabel: "Turn it into a WASD dance floor", target: "daft-punk-dance" }
Two details make this cheap. First, that graph is read once, at setup time — a small activation pass seeds each chip into its source app and blesses the cross-app link; nothing consults it when a visitor clicks. Adding a lane branch is a data change, not a code path. Second, the lane graph is a DAG, so a node inherits every path that reaches it: hang the dance floor off the voxel 303, and because the voxel 303 already sits under both the Music and the Voxel tile, the dance floor lands in both lanes from a single edge.
So the front door now reads the way the apps were built. Open the Music or Voxel lane, and one chip in you're playing the voxel 303; one more and you're dancing in it:
Play the chain
Start at the lanes, or jump straight into the voxel 303 and hit ▶ ENTER THE STUDIO.
Open /start →Nobody plans a voxel disco. Now the front door doesn't either — it just keeps offering you the next remix.
Jump straight to the Voxel 303, the Daft Punk dance floor, or the 303 Acid Edition it all grew from. There's a screen recording of the 303 if you'd rather just watch.