← the instrument · research / sandpiles
The instrument is honest only because the avalanche it plays is a real property of the pile, not of the order it happens to simulate the toppling in. Everything the page makes audible is proved here from scratch, in the same integer arithmetic the browser runs.
The abelian sandpile on an N×N grid (Bak–Tang–Wiesenfeld 1987). Each square holds an integer count of grains; a square with ≥ 4 grains topples, sending one grain to each of its four orthogonal neighbours. Grains leaving the boundary are lost to the sink. Relax until every square is < 4. The number of times each square topples is its odometer.
node verify.mjs)The avalanche-size distribution is a power law, but its precise exponent is genuinely subtle and still debated for the 2-D abelian sandpile (the distribution is multifractal; finite-size effects are strong). The instrument therefore reports the slope it measures on your run as a description, never as a claimed universal constant. What is exact — and what the instrument's claim of honesty rests on — is the order-independence proved above.
verify-page.mjs loads the built page in a real (headless) browser and asserts the engine the audio reads is the same one proved here: a real avalanche is order-free under five random orders, the 84-topple landmark reproduces, the identity is non-trivial, a centre tap on a full pile triggers an avalanche and the live abelian panel confirms it, the histogram builds, and every control + the URL round-trips, on desktop and mobile, with no errors or overflow. Audio cannot be heard headless, so the sound is verified through the integer rule that drives it.