TITLE: Domino Cascade — A Toy of Falling Things PROMPT: Build a single-file domino cascade toy on a full-viewport canvas. The table is pre-rendered once per resize to an offscreen canvas: a #1a1410 base, a warm radial key light, 170 seeded wood-grain curves in #5e422a and black at 20-24% opacity, nine darker broad streaks, and a heavy vignette. Render the dominoes with a fake 3D projection: screen x = cx + (wx - cam.x) * scale, screen y = cy + ((wy - cam.y) * 0.60 - wz) * scale. Each domino is 26 wide, 8 thick and 52 tall, defined by a base edge (two corners along the perpendicular of its heading) and a top edge displaced by height*sin(theta) along the heading at height*cos(theta). Draw shadow ellipse, then the navy top cap (#2b3a67), then the cream face (#f2e8d5) with a hairline stroke and a bright top edge, then pips mapped through a bilinear interpolation of the projected quad - red #d94f2b in one half, blue #2b3a67 in the other, layouts 0-6 as classic dice patterns. Depth-sort by world y. Physics is 1D rotational: theta'' = 27*sin(theta) with damping, a bounce clamp at 90 degrees, and a contact test that fires an impulse into the next standing domino when a falling domino's tip reaches it. Seed the scene with an arc-length-resampled Archimedean spiral (radius 70 to 235, ~160 dominoes at 32-unit spacing) fitted to the viewport, auto-tipped 2.4 seconds after load. Toolbar in system-ui and ui-monospace with Place / Line / Curve / Clear, a domino and fallen counter, Tip all, Slow-mo and a Sound toggle. Audio is synthesized in WebAudio (no files): every tile impact plays a short wooden clack - a sine body at 176-234 Hz plus a band-passed noise click at 1.2-2.2 kHz, +/-15% detune, 30 ms throttle, into a compressor bus - and a quiet high-passed tick accompanies placements; the audio context is created and resumed on the first user gesture. DESCRIPTION: A domino run as a physical toy. A single tight spiral of cream-and-navy tiles sits on a warm wood table lit from above, and after a beat the innermost tile tips, sending a wave around the coil - each tile rotating on its base edge, striking the next, settling with a small bounce. The camera looks down at the table with a gentle squash so the tiles read as solid objects with thickness, and every face carries classic dice pips in red and blue. A compact dark toolbar floats at the top with the placement tools, a live count of total and fallen tiles, a slow-motion toggle, and a one-line control hint at the bottom. TECHNIQUES: 1D rotational domino physics with gravity torque, damping, contact impulse transfer and a settle bounce; oblique pseudo-3D projection with per-quad bilinear pip mapping; offscreen pre-rendered wood-grain table blitted each frame; depth sorting by world y; arc-length path resampling so hand-drawn lines and freehand curves get evenly spaced dominoes with correct tangent headings; ghost preview polygons during drag; fixed-timestep accumulator (1/120 s substeps) decoupled from render; dirty-gated rendering with a moving-objects test; gesture-unlocked WebAudio clatter - each tile impact synthesizes a wooden clack (sine body + band-passed noise click, +/-15% pitch variance, 30 ms throttle, dynamics-compressor bus) and placements get a quiet high-passed tick. INTERACTION: Click with Place to drop a single domino (it inherits the heading of the nearest existing tile so chains continue). Drag with Line to lay a straight run, or with Curve to lay dominoes along the freehand path you draw - a gold ghost preview follows the pointer. Clicking any placed domino tips it immediately. Tip all knocks over every standing tile with a slight stagger; Clear wipes the table; Slow-mo drops the time scale to 0.26x. The wheel zooms the camera between 0.55x and 2.4x. The spiral auto-tips once after load so the piece demonstrates itself. prefers-reduced-motion suppresses the auto-tip and halves the simulation rate. The Sound button mutes or unmutes the synthesized clatter (it reads Muted when off); audio unlocks on the first click or keypress, per browser autoplay policy.