loading...
Press Play or choose a preset.
running...
The science
The table moves as s(t) = A sin(wt), and the shaking strength is the dimensionless Gamma = A w^2 / g, the peak table acceleration in units of g. Between impacts the ball is in free flight, z(t) = z0 + v t - g t^2/2. At an impact with table velocity u and incoming ball velocity v-, the restitution law gives
v+ = (1 + e) u - e v-
so every impact removes a fraction of the relative kinetic energy and the table puts it back. The pair (impact time, post-impact velocity) defines an exact two-dimensional map, found here by root-finding the flight equation. A ball can only leave the table if Gamma > 1. A periodic orbit that lasts exactly one table cycle needs
cos(phi*) = pi (1 - e) / ((1 + e) Gamma)
which requires Gamma >= pi(1-e)/(1+e) (1.047 for e = 0.5). In the variables (impact time, relative kinetic energy per mass after impact) the map contracts area by exactly e^2, which is why a strange attractor with a fractal cross-section lives in it. Raising Gamma at fixed e produces the classic cascade 1, 2, 4, ... then chaos with periodic windows (for example period 3 near Gamma = 2.4 and period 5 near 3.2 for e = 0.5).
Honest simplifications. The table is perfectly rigid and sinusoidal, the ball is a point mass, restitution is constant and independent of impact speed, there is no air drag or spin, and a chattering ball is treated as riding the table until the table accelerates down faster than g. Real balls show speed-dependent restitution. Which attractor you land on depends on the start: the presets follow the period-1 branch by continuation in Gamma, Drop ball starts from rest.
In-page checks: (1) the period-1 impact phase against the closed form, (2) flight time against the table period, (3) the finite-difference Jacobian determinant of the impact map against e^2, (4) the real-time sub-stepped simulator against the exact map.