Each tile is a rigid rod hinged at its base edge — a physical pendulum. Gravity acting at its centre of mass (height h/2) produces a torque about the pivot; with moment of inertia I = (1/3)mh² for a rod pivoting at its end, the mass cancels out and the angular acceleration reduces to a clean, mass-independent law:
theta'' = (3g)/(2h) * sin(theta)
theta = 0 (standing upright) is an unstable equilibrium — the push slider sets the initial angular velocity ω₀ that knocks the first tile past it. Once a falling tile's top edge sweeps far enough sideways (h·sin θ) to reach the face of its neighbour, an inelastic collision transfers a fraction η of its kinetic energy into the neighbour's initial spin: ω_next = √η·ω_contact. The struck tile then locks at its contact angle while the next one takes over.
- Critical spacing — a tile can only ever reach h·sin(90°) = h sideways. If the gap between faces exceeds the tile height, no contact angle exists and the chain physically cannot propagate — push the Spacing slider past roughly 1.2× height to watch a real chain reaction stall, exactly as it does with real dominoes spaced too far apart.
- Wave speed — measured directly from the simulation as the pitch distance divided by the time between consecutive tiles crossing their contact angle, not a fixed number.
- Energy transfer η — models the inelastic losses (friction, sound, deformation) of a real tile-on-tile impact; lower it to see the wave slow down and eventually die out even when the geometry allows contact.