Presets
Playback
Parameters
Model checks
The science
Pendulums that touch
Each ball of mass m hangs on a string of length L, so between impacts it obeys θ'' = −(g/L) sinθ − γθ' with period T = 2π√(L/g) for small swings. The balls touch at rest, so a ball lifted through angle θ0 arrives with speed v = √(2 g L (1 − cosθ0)).
Why exactly one ball leaves
For two equal masses colliding elastically, momentum p = mv and kinetic energy ½mv² are both conserved only if the balls exchange velocities. In a row of touching balls the compression wave travels through the contacts in a fraction of a millisecond. Here every contact is a Hertz spring F = kδ3/2 (with Hunt-Crossley damping that sets the restitution e), and the same two conservation laws then single out the unique outcome: k balls swing in, k balls swing out. Splitting in a different way, such as two balls leaving at half speed, would conserve momentum but not energy.
Losses
With e < 1 each impact dissipates energy, so the last ball leaves slower than the first arrived and the swing gradually dies out. Momentum is still conserved during each contact, but not over a whole swing because gravity and the strings act on the balls.
Honest simplifications: point contacts along a horizontal line, balls that touch exactly at rest, a contact stiffness far softer than steel (about 108 N/m3/2) so the simulation stays fast, no rolling or spin, no string stretch and a constant restitution. Real cradles also lose energy as sound and through ball-to-frame coupling.
What to try
- Lift two balls with the pull-angle slider and watch two balls swing out: momentum and energy are both conserved.
- Lower the restitution to 0.7: the outgoing speed drops on every swing.
- Lengthen the string and compare the swing period with 2π√(L/g).
- Use the Seven balls preset and lift three of them.