Presets
Playback
Parameters
Model checks
The science
Pendulums and impulses
Each ball is a pendulum with θ'' = -(g/L) sinθ - cθ'. For small swings the period is T = 2π√(L/g) and does not depend on the swing size or the mass; for large swings the exact period is T = 4√(L/g) K(sin(θ0/2)), with K the complete elliptic integral. Neighbouring balls touch when their horizontal positions meet. The collision is an impulse along the line of centres with restitution e: for equal masses the velocities become v1' = ((1-e) v1 + (1+e) v2)/2 and v2' = ((1+e) v1 + (1-e) v2)/2, so with e = 1 the two balls simply swap speeds.
Why the chain works
When one moving ball hits a row of touching balls, each contact swaps velocities in turn and the last ball leaves with the incoming speed. Both momentum and kinetic energy are conserved only if e = 1; with e < 1 energy is lost at every contact and the end balls slowly share the motion.
Honest simplifications: contacts are resolved pair by pair as instantaneous impulses (no ball elasticity, sound or contact time); the 3D version uses a physics engine with bifilar strings, here the swing stays in one plane; the ball mass cancels, so energies are per unit mass.
What to try
- Lift 2 balls: two balls leave on the far side, not one with twice the speed - momentum and energy together demand it.
- Set restitution to 0.5 and watch the energy graph fall at every contact.
- Increase the pull-back angle and compare the measured swing time with the small-angle period.
- Use Long strings to see the slower beat.