Presets
Playback
Stack
Number of balls, how fast the mass falls off up the stack, and the ball size.
Collisions
Restitution 1 = perfectly elastic.
Drop
Height and gravity (try the Moon or Jupiter).
Speed
Slow motion shows the collision order.
Camera
Layers
Quality
Model checks
The science
What happens
Stack balls of decreasing mass, heaviest at the bottom, and drop them together from height h. All balls reach the floor with the same speed V = sqrt(2 g h). The bottom ball bounces first and meets the next ball while that one is still falling, so the collision is head-on at a closing speed of about 2V. Each ball in turn passes speed up the stack, and the lightest ball can leave much faster than it arrived.
Equations
Free flight: z(t) = z0 + v t - g t^2 / 2. Between two balls the gravity terms cancel, so the contact time is t = gap / (v_lower - v_upper).
One head-on collision with restitution e (momentum conserved, v2' - v1' = -e (v2 - v1)):
v1' = (m1 v1 + m2 v2 + m2 e (v2 - v1)) / (m1 + m2), v2' = (m1 v1 + m2 v2 + m1 e (v1 - v2)) / (m1 + m2)
Two balls, all elastic, ball 1 bouncing up at +V and ball 2 still falling at -V: v2' = V (3 m1 - m2) / (m1 + m2). When m2 << m1 the top ball leaves at 3V, so it rises to (3V)^2 / 2g = 9 h. Each extra light ball on top can multiply the speed again, up to (2n - 1) V for n balls in the ideal limit.
Honest simplifications
Collisions are instantaneous and ideal (constant coefficient of restitution, no spin, no air drag, perfectly vertical motion, one collision at a time in order from the floor upwards). Real balls of finite stiffness collide for a few milliseconds, the contacts overlap in time, and a real stack never lines up perfectly, so measured gains are lower than the ideal numbers. Radii follow the masses at a fixed density and only affect the geometry (contact heights). The simulator is event-driven, so it does not depend on a time step.
Checks in the page
Check 1 compares the simulated top-ball launch speed with the closed-form chain of collisions (and with (3 - q)/(1 + q) for two ideal balls). Check 2 verifies energy conservation for elastic balls (never energy gain otherwise). Check 3 verifies that the drawn meshes sit at the model heights and that the first impact happens at sqrt(2h/g).