Changing the drink or the glass starts a fresh glass. Everything marked ⚡, and ice, Mentos, salt and the spoon, act live on the glass you have. Hover any setting for the physics behind it.
PERFECT POUR
Five random drinks, glasses and ice. Fill the liquid to the blinking line with a 3–15 mm head, then SERVE. Points for accuracy, speed and a good head; spills cost you.
Best: 0
HOW TO POUR
- Grab the bottle by its neck to move it, by its body to tip it — you control the flow completely. Scroll to tip it too.
- Or hold SPACE / HOLD to tip it, or AUTO to pour the set amount.
- Drag the glass (or ← →) to tilt it — pour down the side for less foam.
- Ice, Mentos, salt and the spoon are in the ADD row. Press ? for every key.
FREE POUR
Pick a drink, a glass and some ice, then pour. (The challenge picks them for you.)
YOUR POUR
Curious why it foams? Switch to ⚗ LAB for every control, chart and the physics behind it.
ACHIEVEMENTS
WHAT IS SIMULATED
The 3-D view ray-casts the glass, liquid, foam and every ice cube at its real depth (press V for the flat cut-away section). Bulk liquid is well-mixed (one CO₂ concentration, one temperature); every bubble is tracked as a weighted particle; the head is a stack of foam layers, each with its own gas, liquid and dissolved CO₂.
- Solubility — Henry's law
c_eq = K₀(T)·P with the Weiss (1974) fit ln K₀ = −58.0931 + 90.5069·(100/T) + 22.2940·ln(T/100) mol/(kg·atm), × an estimated Sechenov salting-out for sugar.
- Supersaturation —
S = c/c_eq − 1. Altitude lowers P; warmth lowers k_H.
- Critical radius —
R* = 2σ / (c/k_H − P_atm − ρgz): hydrostatic depth suppresses nucleation.
- Homogeneous nucleation —
J = J₀·exp(−16πσ³ / 3k_BTΔP²) ≈ 10^(−millions): impossible, so all bubbles are heterogeneous.
- Active sites —
N_a = N₀ · (θ/180°) · (1 µm / R*)²: power-law cavity sizes × Bankoff gas-trapping by contact angle θ.
- Detachment —
R_d = min(5r_c, ∛(1.5 r_c σ sinθ/ρg), r_c σ sinθ / 3μu): pinch-off, buoyancy or flow-drag beats contact-line pinning.
- Site frequency — exact integral of
dR/dt = (D/R + k_c)·RTΔc/P: t = [R_d/k_c − (D/k_c²)·ln(1 + k_cR_d/D)] / a, with Levich convective k_c.
- Wetting-front entrapment — dry rough surfaces (frosty ice, styrofoam, Mentos) trap
V_air = A_new · δ of air as seed bubbles.
- Bubble growth —
dn/dt = 4πR²·k_L·(c − k_H·p_CO₂); radius from (P_L + 2σ/R)·⁴⁄₃πR³ = nRT (Newton solve). Entrained air bubbles start with p_CO₂ = 0.
- Mass transfer —
Sh = 2 + 0.6Re^½Sc^⅓ (rigid) ↔ 2 + 1.13(ReSc)^½ (mobile); turbulence adds 0.4(εν)^¼Sc^−½.
- Rise — Schiller–Naumann drag between Stokes (24/Re) and Hadamard (16/Re) limits, Tomiyama cap
(8/3)Eo/(Eo+4), plus bubble-swarm drift 0.35√(gαH).
- The pour — free fall
v = √(v₀² + 2gh), necking d = d₀√(v₀/v); air entrainment (Bin 1993) Q_a/Q = 0.04·Fr^0.28·(h/d₀)^0.4; plume u_c = 5.8·v·d/z (Pope); transit loss through the stream and wall film (area/volume)·4√(Dt/π) (Higbie, Nusselt film); entrainment scaled ×0.35, fitted to Liger-Belair et al. 2010; bubble size cap (Hinze) d_max = 0.725(σ/ρ)^0.6 ε^−0.4.
- Foam — drainage
q = k·ρg/μ with measured permeabilities k = 8·10⁻⁴D²φ² (rigid) ↔ 6.7·10⁻⁴D²φ^{3/2} (mobile); coarsening d⟨R²⟩/dt = 4σD·He/(P·h)·(1−√(φ/φ*))²; films rupture once drainage dries the foam below a critical liquid fraction: rate ∝ exp[3(φc/φ − 1)] (Carrier & Colin); capillary pressure Pc = σ/(R√(φ/0.33)) shown as a diagnostic; foam liquid degasses over τ = r_pb²/4D.
- Drinks — each drink's sugar (°Brix) sets viscosity
μ/μ_w ≈ e^{0.0287·Bx}, density, heat capacity and Sechenov salting-out of CO₂; its surfactants set σ, bubble-skin mobility and φc. Carbonation levels are sourced (see README).
- Ice cubes — rigid bodies (gravity, buoyancy, drag C_d 1.05, stacking) that float, slide when tilted and overflow onto the table; each melts by its own wetted area: warm to the drink's freezing point, then
m = q/L_f; Churchill natural convection with water's 4 °C density maximum; soda below its freezing point freezes onto the ice; meltwater dilutes CO₂ and sugar.
- Hand and slosh — the cup follows your tilt like a critically damped hand; the drink's first mode
ω² = (gξ₁/R)·tanh(ξ₁h/R) (Lamb, ~3.5 Hz) chases tan δ = −a_x/(g + a_y). Liquid over the rim clings below ~0.3 m/s (teapot effect) and is thrown above it.
- Erupting foam — leaves the mouth at u = foam rate / mouth area; flung off when
ρ_f·u² beats its yield stress and rim grip, otherwise it oozes down the outside.
- Stream and table — the stream flies as parcels (breaks up after
19.5·d·[√We(1+3Oh)]^0.85, Grant & Middleman); puddles spread as r ∝ t^⅛ (Huppert) to ~3 mm thick (2·l_c·sin(θ/2)) and merge.
- Spray and spills — bursting bubbles fling jet and film drops centimetres up; foam that overflows faster than a Bingham film can creep down the glass breaks off in clumps; on the table it heaps (yield stress,
h² = 2τ_y(r₀ − r)/ρ_f g) and puddles pin at the table's edge until thicker than 2·l_c·sin(α/2).
- Salt, Mentos and ice as bodies — gravity, buoyancy, drag and the swing of the cup (−(α×r − ω²r), Coriolis): a flick throws them out. Salt dissolves at
k·A·ρ_w·(m_sat − m) (Ranz–Marshall), faster stirred, stopping at saturation (~6.1 mol/kg); on ice it melts brine and chills the cube.
- Meltwater layer — fresh meltwater floats on sugary or salty soda: no CO₂ (a lid on the fizz), no surfactants (weaker foam), ice in it melts slowly; turbulence mixes it in at
u_e = 0.1·u/Ri (Turner).
- Salt and melting — ice melts at the solution's freezing point
T_f = −i·K_f·m (NaCl i ≈ 1.87); salt lowers it, so ice melts faster, and salts out CO₂: k_H × 10^(−0.11·[NaCl]) (Sechenov; Weisenberger & Schumpe 1996). Dissolving it takes in heat (+3.88 kJ/mol); brine is denser and holds less heat.
- Surface tension at the rim — meniscus
l_c√(2(1−sinθ)); liquid pins at the rim up to √2·l_c ≈ 3.9 mm above it (Gibbs); foam domes until its yield stress 0.51(σ/R)(φ_g−0.635)² gives way, then creeps down the outside.
- Ice and the pour — the stream cascades through the pile to the liquid: full-drop jet energy, entrainment ×
2 + 1.5·(cube-heights fallen), bubbles carried down the gaps; melting releases the ~2.5 % air frozen into the ice; cooling raises solubility ~10 %, a minor brake.
- Stirring — turbulence ε ≈ 5 W/kg, a moving steel spoon surface shedding bubbles at 0.3 m/s, and stroke air entrainment
Q ≈ ½·w·u·δ.
- The bottle — flow is not set directly: the liquid surface in the tilted bottle gives the head over the lip, and air must get back in. Smooth: weir flow out, orifice air in, headspace suction balances them. Flooded neck: air only as bubbles rising at
0.35√(gd), capping flow at (πd²/4)·0.35√(gd) ≈ Clanet & Searby's (π/12)√g·d^{5/2} — glug-glug. The jet leaves the lip along the axis and falls ballistically.
- Tilt — the liquid keeps a horizontal surface in the rotated cup: equivalent level
z ↔ world height h by cross-section area D·z = A_below(h); spill at the low rim; surface width ∝ 1/cos θ.
- Heat — lumped soda, cup wall (
U = 1/(1/h + t/2k)), ice (sensible heat, then melting at 334 kJ/kg), room air, and fizz cooling of ~20 kJ per mol CO₂ released.
- Ice geometry — cubes pack in layers; the pack rests on the floor until Archimedes buoyancy exceeds its weight, then floats with draft
m/ρA.
Full write-up in README.md. Every formula is classified by its evidence (law / published correlation / calibrated / estimate) in docs/EVIDENCE.md, and checked by node tests/run-all.js.