01 // LAUNCH & STRIKE
A Physical Play Interface
Hold Space to charge the spring plunger, then release once to launch all three balls in sequence. Moving flippers redirect balls; plunger and flipper actions have their own synthesized cabinet sounds.
Simulated Physics × Generative Browser Audio
Play the table. Shape the music. Tuned bumper collisions and symbol targets add pitched sounds to continuous drums and an ongoing synth voice, while an FX tunnel and six software reel voices transform the performance.
// SIGNAL FLOW
Every collision brings musical expression to the playfield. Continuous patterns and sustained voices keep the composition moving between impacts.
01 // LAUNCH & STRIKE
Hold Space to charge the spring plunger, then release once to launch all three balls in sequence. Moving flippers redirect balls; plunger and flipper actions have their own synthesized cabinet sounds.
02 // PITCH & EXPRESSION
Four main bumpers start at C5, F4, A4 and C5. Impact strength shapes their layered synth sounds. Slot symbols assign distinct voices to the three targets. Collision sounds pan by contact position; ball positions also shape the ongoing voice's filter.
03 // SHARED GROOVE
Active kick, snare, hat and tom steps sound without ball collisions. Bumper hits temporarily wake linked physical gates. A held ball launches on a subsequent active step and adds an impact-sensitive accent. Resting gates are pass-through.
04 // TRANSIT & MEMORY
The scoop captures a ball for a three-trigger tunnel phrase, cycling Filter, Phaser and Bit Crush between empty-tunnel entries. A separate magnetic orbit replays captured pitched audio during transit. Reverb and delay provide additional musical space.
// TWIN SOFTWARE TAPE CABINETS
Six tape-inspired software voices capture audio, recall note fragments and spin existing musical material into something new.
TOP LEFT // GHOST
Occasionally recalls and resynthesizes a short fragment of recent bumper notes, accompanied by a little hiss and crackle.
MIDDLE LEFT // DUB
Derives three-note voicings from the shared pitch pool, with dotted-eighth echoes and stereo space on the common musical clock.
BOTTOM LEFT // DRONE
A filtered triangle drone follows the shared root, with slow filter and level modulation and its own reverb.
TOP RIGHT // SHIMMER
Occasional strong bumper hits or tunnel exits release a restrained wash one octave above the event's played pitch.
MIDDLE RIGHT // PERCUSSION
Occasionally borrows a recent scheduled groove hit for a short, shuffled burst using the existing drum synthesis recipes.
BOTTOM RIGHT // REVERSE
Replays periodic snapshots of the original mix backwards at half speed. New reel returns sit outside the capture path to prevent recursive self-recording.
Four live level meters follow the performance: drums, bumper notes, symbol targets and ongoing voice.
// PLAY THE INSTRUMENT
Click the machine to start and enable audio. Wait for the selected slot-bank door to open, then hold and release Space. The first charge drives all three shots. When all three balls drain, the round score is compared with your best completed round and the supply refills.
Land a matching slot triple to give your first ball a golden makeover. Chase your best completed round throughout the session—even across New Game resets.
Edit the four 16-step drum rows on the playfield and the ongoing voice's sixteen phrase positions around the border. The selected starting configuration uses 88 BPM, D minor-seven, and half-rate voice and drums.
Go deeper with sequence tuning and the mixer: explore rhythms, evolving phrases and the balance of individual sounds while you play.
// SOFTWARE ARCHITECTURE
Built in TypeScript with Vite, the chamber brings together an ECS runtime, a pattern engine, browser synthesis and reactive controls.
01 // SIMULATION
Ritmo owns ball Body components and runs the chamber's collision and transit rules at a target of 240 fixed steps per second. Table records define static mechanisms, while a separate rendering loop draws the action.
02 // MUSIC & AUDIO
Strudel provides cyclic pattern queries. SuperDough synthesizes pitched sounds. Custom Web Audio graphs render drums, cabinet sounds, filtering and mix routing; AudioWorklets capture audio memories. An AudioContext-based lookahead schedules the groove independently of display frames.
03 // PRESENTATION & INPUT
Canvas 2D draws the table; DOM/SVG supplies cabinet artwork and controls. Datastar connects reactive settings and control intent, alongside native event handling. Keyboard and pointer input put the instrument in your hands.
OPEN SOURCE · MADE FOR PLAYING & EXPLORING
Use the plunger and flippers to bring tuned collisions, rhythmic gates and evolving software voices into the same performance.
OPEN COLLISION CHAMBERClick the machine to start the sound. Hold Space, release, and let the collisions compose.