Hold the pump to inflate. Let go early — the balloon keeps growing after you stop.
Mouse or touch on the pump button, or hold Space. N starts a new game. The first squeeze is the hard one: the balloon fights back hardest at λ = , and gets easier after that.
Set two stretches and open the tap. Air goes from high pressure to low — which is not the same as from big to small.
| Demonstration | λ start | λ end | Air goes | Naive rule |
|---|
The pressure curve
A thin rubber shell of unstretched radius cm and unstretched wall mm, inflated to a sphere of radius r, holds a gauge pressure that depends only on the stretch λ = r / r₀:
p(λ) = (4 t₀ / r₀) · (C₁ + C₂ λ²) · (λ⁻¹ − λ⁻⁷)
with C₁ = kPa and C₂ = Pa, so C₂/C₁ = . The dots are the measured curve of Merritt & Weinhaus (1978), digitised: points, peaking at λ = , kPa.
The peak is at λ = ( cm across the radius), kPa — only of an atmosphere, or cm of water. The trough is at λ = , kPa, and the steepest point between them is at λ = . The model reproduces the measured peak to in pressure and in stretch, but it places the trough too far out — see Findings.
Where the peak goes
It is often said that a balloon's pressure peaks at λ = 71/6 ≈ . That is true only when C₂ = 0. With a second Mooney term the peak moves out and the trough moves in, and at C₂/C₁ = they collide at λ = and both vanish. Above that ratio the pressure rises all the way and there is no two-balloon effect at all.
When the bigger balloon really does push harder
Shaded: every pair of balloons for which the naive rule is wrong. To the left of the green line the smaller balloon is below λ† = ( cm) and the rule is right against any partner, however big.
The claim, and what is actually true
“The bigger balloon pushes harder, so air flows from big to small.”
Air does flow from higher pressure to lower — that part is never in doubt, and it is the same statement Levin & da Silveira reach from the chemical potential, valid for non-ideal gases too. What is wrong is the middle clause. Size decides nothing. The pressure in a rubber balloon rises, peaks at λ = , falls to a trough at λ = , and rises again. Whether the bigger balloon pushes harder depends on where the two of them sit on that curve. Over sampled pairs, air went big→small times and small→big times: and of the survivable pairs break the rule.
The regime where the intuition is right, bounded exactly
There are two exact statements, and the second is the useful one.
- For a given small balloon at λs, the rule fails on exactly one open interval — between the two other stretches that carry the same pressure. Outside it, including for balloons far bigger than the window, the bigger balloon really does push harder. Checked against a 4 000-point scan at different small stretches, with no mismatches.
- Below λ† = the rule never fails at all. If the smaller balloon's pressure is under the trough pressure ( kPa), the curve never comes back down to meet it, so every larger balloon is at higher pressure. For this balloon that is a radius of cm — a balloon you have barely started. Two limp balloons obey the schoolroom rule perfectly; that is why the demonstration needs one of them properly inflated.
And a third, about the rubber rather than the balloons: if C₂/C₁ exceeds the curve has no peak, and the naive rule is right for every pair of balloons made of it. The effect is a property of the material, not of balloons.
Stability, measured rather than asserted
Two connected balloons sit at equal pressure. Perturb one by a volume δ: the perturbation grows at a rate −K (dp₁/dV₁ + dp₂/dV₂). Over equal-size states the measured growth rate agreed with that expression and never once disagreed about the sign; of them were unstable. Bisecting the measured rate for its zero finds λ = and λ = — the pressure peak and trough, to and , found without ever evaluating dp/dλ.
Starting from two equal balloons at λ = with an imbalance of , they separate to λ = and in s of model time. The same seed at λ = 1.25 decays to , and at λ = 4.6 to .
A published sentence this app contradicts
Wikipedia's Two-balloon experiment says: “Equilibria in which both balloons are on the right of the pressure peak also exist but are unstable.” Unqualified, that is false for a real balloon. It is derived inside the James–Guth model, which has no second ascending branch — but the same article records that real rubber does have one, and the measured data show it. Past the trough, dp/dV is positive again, so two equal balloons are stable: at λ = the measured growth rate is per second — negative, a decay. The sentence is right only between the peak and the trough.
Why blowing up a balloon does not snap
Under pressure control the falling branch is unstable. Under mass control it is not, and that is a theorem rather than an accident: what a fixed amount of air fixes is (Patm + p)·V, whose derivative Patm + p + V dp/dV is positive because p·V itself is a sum of strictly increasing terms in λ. The elastic part dips to only Pa at λ = and never reaches zero, so no ambient pressure — not even a vacuum — lets a single balloon jump. Compressibility therefore never changes a verdict: over equal-pressure pairs it flipped the stability sign times. It only slows things down, by at most , and always slows, never speeds.
How well the model fits the real balloon
Honestly: well at the peak, badly in the middle. Against the digitised points the shipped parameters give an RMS of kPa (R² ), worst kPa at λ = . The measured trough is at λ = ; the model puts it at . Refitting C₁ and C₂ to the same data by exact normal equations — the pressure is linear in both, so there is no solver and no starting guess — gives C₁ = kPa, C₂ = Pa, RMS kPa, R² — and still puts the trough at . The misplaced trough is the two-term model, not the fit. A Gent model fits it properly; this app does not ship one.
Finding the peak without the formula
Closed form: the stationary points of p(λ) solve a quartic in λ², and Ferrari's method gives them exactly. Numerically: differentiate the strain energy — written from the invariants of the deformation, sharing no code with p(λ) — and root-find the result. Peak against , agreeing to ; trough to ; across materials the worst disagreement was .
A maximum is a bad root. Searching on values — golden section on the pressure itself — stalls at after iterations, because near the top p(λ*) − p(λ) grows as (λ−λ*)² (verified to ), so a pressure resolution of one ulp buys only in λ. Root-finding the derivative instead gets — times better. Both numbers are reported.
Three routes to the same pressure agree over stretches: the closed form, dU/dV by an eighth-order difference of the invariant-based strain energy (), and membrane stress through Laplace's law (). The difference stencil shows order before bottoming out at .
And the critical Mooney ratio: this app derives αc = 3w2/3/(4w+5) with w = 19 + 6√11 from the double root of its own quartic. Mangan & Destrade print (2√11−3) / [5(19+6√11)1/3]. Different expressions; they agree to .
About
Blowing up a balloon is not anybody's invention and nobody owns it. The two-balloon experiment — join a small inflated balloon to a large one and watch the small one shrink — was posed by J. S. Miller in American Journal of Physics 20(2), 115 (1952) and first explained theoretically by David R. Merritt and Fred Weinhaus, “The pressure curve for a rubber balloon”, American Journal of Physics 46(10), 976–977, October 1978. This app is an independent reimplementation written from the published physics; no code or asset comes from any existing product.
What is faithful, and what is not
- Faithful. The membrane law is the standard Mooney–Rivlin thin-shell result, in the form printed by Verron & Marckmann (2003) Eq. 28. The constants are Mangan & Destrade's published fit to Merritt & Weinhaus's own measured curve, and the measured points are plotted alongside the model rather than hidden.
- Different from Merritt & Weinhaus. Their paper uses the James–Guth network relation, not Mooney–Rivlin; theirs is the C₂ = 0 curve, with the peak fixed at 71/6. This app uses the two-term model so that the second ascending branch — which they measured and could not explain — exists at all.
- Not modelled. Hysteresis: real rubber takes a different path down than up, so a real pair of balloons equalises with a smaller change in diameter than shown here. Crystallisation, rate dependence, temperature, the neck, and the balloon's non-spherical shape are all ignored.
- Reconstructed. The burst stretch (λ = , a radius of cm) is not a measurement. No peer-reviewed burst stretch or burst pressure for a party balloon was found; the value is the limiting stretch of a Gent fit to the same data, which is a model asymptote. In the game each balloon's burst point is drawn at random between λ = 4.70 and 5.80, so no two balloons give out at the same size. The pump — its ceiling, its rise and bleed-down times and the valve conductance — is invented to make a playable game and is not a measurement of any pump.
- Qualified. The wall thickness, 0.50 mm, is an explicit assumption in the source, not a measurement: only the product (t₀/r₀)·C₁ is fixed by a pressure curve, so C₁ and t₀ trade off one for one. The one paper that measured a party-balloon wall found 0.114–0.183 mm, 3.5× thinner. The C₁ shipped here was fitted with the 0.50 mm assumption, so the two travel together.
How to play
Hold the pump. The balloon fills while the pump pressure is above the balloon's own, and it keeps filling for a moment after you let go, so you have to release early. Land inside the dashed ring and hold still to bank the round; go past the red ring and it pops. Five balloons a game. Space pumps, N starts a new game.
The coast after you release is longest on the soft part of the curve: releasing at λ = 1.25 the balloon drifts a further , at λ = 2.4 it drifts , and past the trough at λ = 4.4 only . The longest drift starts at λ = , between the peak and the trough. That is the constitutive curve showing up in the gameplay.
Over seeds every target is reachable, and the release window that still banks the round averages in λ (95% CI –, tightest ). Releasing exactly at the target overshoots the band on of seeds.
How it was checked
offline assertions over sections, including the three independent pressure routes, the closed-form roots against a from-scratch Durand–Kerner solver, the extrema rediscovered numerically without the formula, the published measured curve, the stability eigenvalue against measured growth, and the failure window against brute-force scans. Every number printed on this page is generated from that harness output, not typed by hand.
Seeded games replay bit-for-bit within one JavaScript engine. The random stream is mulberry32 with pinned constants; draws give a mean 95% CI of – and χ² = over 20 bins.
Credits and licence
Full provenance for every constant is in CREDITS.txt; the licence is in LICENSE.txt; a machine-readable summary is in llms.txt.
Nothing here is uploaded. The app makes no network request after it loads, calls no model, and costs no credits. Your best score is kept in your own browser only.