The physics is the sequencer — every bounce is a note, always in key.
COOP/COEP headers, so the browser will not grant it shared memory and audio cannot run on its own thread. Serve it with Cross-Origin-Opener-Policy: same-origin and Cross-Origin-Embedder-Policy: require-corp.Drag to draw · D roll the dice · ⌘S copy board · ⌘⇧S copy link · ⌘E export MIDI
Drag on the canvas to draw a line.