On a touchscreen, press and hold the pump buttons under the swing; holding one switches the autopilot back to You. W/S or ↑/↓ stand up and squat — move your weight along the rope. A/D or ←/→ lean back and forward — turn your body about itself. Space lets go. R resets. Seated you can lean a long way and barely rise; standing it is the other way round.
On a real swing: jumping off here is a game, not advice. Falls are the most common playground injury. Sit in the middle of the seat, hold both chains, bring the swing to a stop before you get off, and walk wide around swings that are moving. Soft surfacing under the set (wood chips, sand, rubber) matters more than anything you do on it.
What actually adds the energy
A swing carrying a rider is a pendulum with a moving part inside it. The rider has exactly two things they can do, and they are not the same thing at all:
- Move the centre of mass along the rope — stand up, squat back down. This changes a coefficient of the equation of motion rather than adding a force. It is a parametric drive, and a parametric drive only works at twice the swing's own frequency.
- Turn the body about its own centre of mass — lean back, lean forward. This is a genuine torque at whatever rate you lean, so it works at the swing's own frequency.
Everyone does some of both, in either posture. The split is not standing versus seated. It is translation versus rotation.
Squatting in time with the swing does exactly nothing
Write l(t) for the distance from the pivot to the rider's centre of mass. Substituting u = l θ into the exact equation l θ″ + 2 l′ θ′ + g sin θ = 0 removes the first-derivative term without any approximation and leaves
u″ + ( g/l − l″/l ) u = 0.
Now squat sinusoidally at frequency W, so l = l0(1 + ε cos W t). The bracket becomes (ω02 + ε W2 cos) / (1 + ε cos), and at W = ω0 that is ω02 — a constant. The gravity term and the inertial term cancel each other exactly. Not to first order in the squat depth: exactly.
The monodromy trace over one pump period is against the theoretical 2, at a squat depth of 0.35 m, and the nonlinear engine run for periods changes the peak amplitude by . The same rider squatting twice per swing multiplies the amplitude by in twelve periods.
That exact cancellation needs a point-mass rider. Give the rider a moment of inertia about their own centre of mass and the trace drops below 2 — still no growth, just no longer exactly marginal. I expected the null to break; it does not. What does leak past it is that a rider who watches the swing instead of a clock cannot produce a pure sinusoid: the autopilot's own motion carries a second harmonic the size of the first, and that is what creeps upward.
The stability chart
Linearised, the squatting swing is Mathieu's equation y″ + (a − 2q cos 2τ) y = 0 with a = 4ω02/W2 and q = 2ε(ω02 − W2)/W2. The shaded wedges are where solutions grow. Squatting twice per swing puts you at a = 1, dead centre of the widest one, with q = −3ε/2. Squatting once puts you at a = 4 — and, worse, at q = 0, because the numerator vanishes there.
Curves: the transition series of DLMF 28.6. Dots: the same boundaries located by bisecting on the monodromy trace, sharing no code with the series. They agree to on the first tongue and on the second, across values of q.
Growth rate against pumping frequency
Sweep the squat frequency and measure the Floquet exponent of the real engine at each one. There is one peak, it is at times the swing frequency, and only of the sampled band grows at all.
Why children start seated and finish standing
A lean is a torque, so it adds amplitude at a constant rate: the swing climbs in a straight line and it works from a dead stop. A squat is parametric, so it multiplies whatever amplitude is already there: it climbs exponentially and it cannot start at all — θ = 0 is an exact equilibrium of the squatting equation. Give both riders the same tiny nudge and the straight line leads for seconds before the exponential goes past it, and then never looks back. The standing rider runs out of road at the 90-degree slack limit after seconds; at that moment the seated rider is still at degrees.
In this rig the two channels cross at degrees of amplitude: below that the lean is worth more, above it the squat is. Post and colleagues (2007) motion-captured eighteen people pumping from standstill and found the same shape — driven oscillation dominant, parametric subordinate, and the parametric share rising as the swing got higher.
The rider's own moment of inertia is the whole seated story
Work the lean through the Lagrangian and the first-order driving torque comes out as
D = m g Ic L α0 / M0,
exactly proportional to Ic, the rider's moment of inertia about their own centre of mass. For a point mass it is identically zero: leaning is then nothing but a change of coordinate, and the swing does not notice. The engine, which was never given this formula, grows at rad/s against a predicted — apart. Set Ic = 0 and the same run gives , smaller by a factor of .
Leaning once per swing also moves the centre of mass off the rope line, and that offset goes as the square of the lean — so it modulates the pivot distance twice per swing and drives the parametric tongue too, at second order. That channel survives at Ic = 0, which is why the point-mass rider is not quite dead.
The exponent is a cube, and I could not find it in print
Take the limit where the rider changes height instantaneously at the bottom. The impulsive force is along the rope, so it exerts no torque about the pivot and ρ2 θ′ is conserved across it. Carrying that through gives, per half swing and at any amplitude,
1 − cos θnext = (llong / lshort)3 (1 − cos θ).
A cube. The engine reproduces it to relative over four half swings. And because that test feeds the impulse assumption in, there is a second one that does not: ramp the length change smoothly over a time τ and shrink τ. At 10 ms the ordinary integrator lands within of the cube, while the cube and a square differ by — so the test can tell them apart, and it picks the cube.
The only discrete-jump relation I could reach in print is Tea and Falk (1968), equation 4, and as transcribed from the publisher's rasterised first-page preview it is a square. The full text is paywalled. I am not claiming the paper is wrong — I am reporting that three independent routes here give a cube, that I could not read the paper, and that the discrepancy is open.
Ninety degrees, and no further
Released from rest at amplitude A, the chain tension is T = m g (3 cos θ − 2 cos A). It is times body weight at the bottom of a 90-degree swing, and it reaches zero at the turning point exactly when A = 90°. Past that the chains go slack and the swing stops being a pendulum — which is why the game ends the round there. Pump hard enough and one single stroke takes you from degrees straight past the limit.
Counter-intuitively, the angular return per pump grows with amplitude rather than shrinking: per half swing near zero, at 1.2 radians, because 1 − cos θ saturates at 2 while the energy gain does not. I had the sign of that backwards until the harness said so.
What was checked, and against what
| Check | Result |
|---|---|
| Energy drift with the rider frozen, over 30,000 steps | relative |
| Exact period against the elliptic closed form | relative |
| Mathieu tongue 1: bisection against DLMF 28.6.2/28.6.3 | absolute |
| Mathieu tongue 2: bisection against DLMF 28.6.4/28.6.5 | absolute |
| Nonlinear engine against exact Floquet, standing pump | relative |
| Mathieu reduction against exact Floquet | at the deepest squat |
| Seated drive formula against the engine | |
| Impulsive cube law against the engine | relative |
| Smooth ramp converging on the cube, no impulse assumed | |
| Chain tension against m g (3 cos θ − 2 cos A) | exact to 1e-9 |
| Jump range against a step-integrated projectile | relative |
| 60 fps against 30 fps, same 6 seconds of play | |
| Engine assertions, all passing |
Every number on this page is written by the harness into
js/figures.js and re-checked from the engine by the page harness. None of them is
typed into the HTML.
About
A playground swing is not anyone's invention and has no author, no year and no publisher. It is a rope and a plank, and it is older than the physics. What this app reimplements is not a product but a body of published work about how the thing is pumped, and those papers are credited by name below and in CREDITS.txt.
Independent reimplementation
Everything here was written from first principles for this app: the Lagrangian, the integrator, the stability analysis, the renderer. No code, art, or data was taken from any other program. The Mathieu transition-curve coefficients are quoted from the NIST Digital Library of Mathematical Functions and are marked as quoted; every other number is either derived here or measured here.
What the published work says, and where this app stands
- Curry (1976), Am. J. Phys. 44, 924 — frames pumping as a parametric amplifier with approximately exponential energy growth, at a rate independent of the child's mass. Abstract only; the full text is paywalled.
- Tea and Falk (1968), Am. J. Phys. 36, 1165 — the discrete-jump standing model. Their equation 4 is the one this app's cube law disagrees with; see the Lab. Read as a rasterised first-page preview only.
- Burns (1970), Am. J. Phys. 38, 920 — the continuous form θ″ + l−1[2l′θ′ + gθ] = 0, which this engine reduces to exactly when the rider only moves along the rope.
- Case and Swanson (1990), Am. J. Phys. 58, 463 — the seated pump as a driven oscillator plus parametric terms, the driving traced to conservation of angular momentum about the support. Abstract only.
- Case (1996), Am. J. Phys. 64, 215 — finds that even the standing pump is dominated by driving terms at ordinary playground amplitudes, explicitly contradicting the earlier parametric framing. Abstract only.
- Post, de Groot, Daffertshofer and Beek (2007), Motor Control 11, 136 — eighteen people motion-captured pumping from standstill: driven oscillation major, parametric subordinate, and the parametric share rising with amplitude. Abstract only; the body is restricted.
- DLMF 28.6 — the Mathieu transition-curve series, read from the raw MathML because a text summariser produced wrong digits twice.
- CPSC Public Playground Safety Handbook #325 — pivot 47 to 96 inches, preschool belt seat 14 to 28 inches. This app's beam sits at 94.5 inches and its seat at 15.7. ASTM F1487 itself is commercial and was not read.
What differs from a real swing, deliberately
- No air resistance and no friction at the pivot. A real swing loses a few percent of its energy per cycle; this one loses none, so a pump that merely breaks even here would lose on a real set.
- Rigid rope. Real chains stretch a little and can twist; here the rope is inextensible and the motion is strictly planar.
- The rider is two numbers. A distance along the rope and an angle about the centre of mass, with a critically damped servo standing in for muscle. A real body has joints, limits and a reaction time, and can do things this model cannot.
- The round ends at 90 degrees. Real chains go slack there and the swing jolts; modelling that properly needs a free-flight phase and a snap, so the app stops instead and says why.
- Jumping off is a bare projectile. No drag, no landing, no rolling.
- Gravity is exactly 9.80665 m/s², the 1901 CGPM standard value, not a local one.
The claim this app was built to test
“You pump a swing by leaning back and forth in time with it.” Half right, and right for a reason the sentence does not give. Leaning is a torque at the swing's own frequency and it does work — but only through the rider's own rotational inertia, and it is not what takes anyone high. Squatting in time with the swing, which is what most people picture, adds exactly nothing: the two terms it creates cancel identically. The motion that actually sends a swing over the bar is squatting twice per swing, which no folk description mentions because it does not feel like keeping time with anything.
Records
Your best jump and best height are kept in this browser only, under the key
playground-swing:best. Nothing leaves the page: this app makes no network requests of
any kind, has no accounts and costs nothing to run.