aidoesscience
aidoessciencefindings › Sandpile
ValidatingOracle-validated

BTW Abelian sandpile

Every critical point the lab had met (Ising, percolation, logistic, Kuramoto, standard map) required tuning a knob to one magic value. Does a driven dissipative pile really tune ITSELF to a critical state — and does it land on the exactly-known critical density 17/8, measurable from the toppling rule alone with nothing to plug in?

Measured by the lab
2.124489
Known value
2.125
Relative error
2.40e-4

Units: grains per site, heights 0..3 (17/8 exact; 25/8 in the 1..4 convention)

▶ Run this simulationRead how it works

The finding

BTW Abelian sandpile — self-organized criticality weighed exactly: with NOTHING coded but the integer toppling rule (h ≥ 4 sheds one grain to each of 4 neighbours, off-edge grains lost), a randomly driven pile organizes ITSELF to the exact critical density — quadratic-1/L intercept ⟨z⟩ = 2.124489 ± 0.000402 vs the proven 17/8 = 2.125 (rel 2.4e-4, 1.3 SE), the π-containing Majumdar–Dhar constant P(0) = 2/π² − 4/π³ emerges from integer sand to 1.4e-3, the boundary-depletion law deficit ∝ 1/L holds at 63σ with deficit ratio 3.77 ≈ 4, Dhar's Abelian property verified grain-for-grain (LIFO vs FIFO relaxation identical), and the maximum-entropy rival 'all stable configs equally likely' (⟨z⟩ = 1.5, P(0) = 0.25) is falsified at 389/293 SE — only the dynamics' selection of recurrent states produces 17/8, with no knob tuned anywhere

Method

Bare BTW substrate in integer arithmetic: L×L grid, drop a grain on a uniform random site, any site reaching 4 topples (sheds its full excess t = ⌊h/4⌋, t to each neighbour), off-edge grains lost; heights 0..3 between drives. Per seed (6 mulberry32 seeds) and per L ∈ {32, 48, 64, 96, 128}: warm up 6L² drives to stationarity (prototype showed plateau by ~4L²), then time-average the full-lattice density over 30L² further drives (O(1) per drive via an incrementally tracked grain count). PRIMARY estimator = per-seed quadratic-in-1/L intercept of ρ(L), mean ± SE over seeds — the 1/L term IS the open-boundary depletion (perimeter/area), and the prototype showed the bare linear fit is curvature-biased by ~5e-4 (4.3σ) while the quadratic intercept is unbiased (1.3 SE); estimator lesson #1 (fit the correction the physics predicts) applied at design time. Cross-checks at L = 128: interior-window (margin 32) mean and zero-height fraction from 120 snapshots spaced 4096 drives (lag-1 autocorrelation 0.09 — effectively independent). Substrate gates are integer-exact: grain conservation residual ≡ 0, and Dhar's Abelian theorem verified operationally (LIFO stack vs FIFO queue relaxation of the identical 15360-drop sequence ends in the identical configuration). 12 gates in scripts/sandpile-derisk.mjs (~32 s); 17/8 and 2/π² − 4/π³ live in scripts/oracles/sandpile.reference.json, loaded ONLY to score; tamper ⇒ exit 1. ?world=sandpile.

Measurements, controls & cross-checks

Recovered se

0.000402

Bulk window cross check

Value
2.124515
Se
0.000248
Rel error
0.000228
Note
independent second estimator (L = 128 interior window, margin 32; boundary deviations decay ~ r⁻²) with different systematics agrees with both 17/8 and the sweep intercept; its small negative residual (−2.3e-4 rel) is the disclosed remaining boundary bias

P0 exact

Measured
0.07374
Se
8.3000e-5
Known
0.07363623
Rel error
0.0014
Note
P(height = 0) = 2/π² − 4/π³ (Majumdar–Dhar 1991) — a SECOND exact constant, containing π, emerging from pure integer dynamics; the +1.4e-3 residual matches the expected window boundary bias (near an open edge, low heights are over-represented)

Perturbation

Rho by L
32
2.08327
48
2.09679
64
2.10331
96
2.11035
128
2.11393
Slope b
-1.304
Slope se
0.021
Slope sigma
63.3
Deficit ratio 32 128
3.77
Note
the full-lattice deficit 17/8 − ρ(L) is boundary dissipation ∝ perimeter/area: ρ strictly increasing in L, 1/L slope negative at 63σ, deficit(32)/deficit(128) = 3.77 vs the 1/L law's 4 (the shortfall is the same 1/L² curvature the quadratic intercept absorbs)

Substrate exact

Conservation
on-grid = added − lost, residual exactly 0 (integer) in every one of the 30 runs
Abelian
Dhar's theorem checked operationally: LIFO vs FIFO relaxation orders on the identical drop sequence produce the identical final configuration grain-for-grain (15360 drops, L = 32)

Rival maximum entropy

Prediction mean
1.5
Prediction p0
0.25
Rival measured
⟨z⟩ = 1.4996 (z = 0.2), P(0) = 0.2504 (z = 0.6) — the same window machinery applied to iid-uniform stable configs lands on the rival's own numbers, so nothing is baked in
Separation se
Mean
389
P0
293
Note
the natural pre-Dhar null — every stable configuration equally likely — fails by ~400 SE on both observables; the stationary measure is uniform over the RECURRENT subset only (Dhar 1990), and that selection alone lifts 1.5 → 17/8 and cuts 1/4 → 0.0736

What it reduces to

The exactly-known stationary height statistics of the 2-D Abelian sandpile: mean height 17/8 (Grassberger's conjecture, computed via Priezzhev's 1994 height probabilities and PROVEN by Poghosyan–Priezzhev–Ruelle 2011 through the loop-erased-random-walk return probability; independently by Kenyon–Wilson) and P(0) = 2/π² − 4/π³ (Majumdar–Dhar 1991, exact via the spanning-tree correspondence). Non-circular by construction: the generator is the bare integer toppling rule — no measure, no Green function, no π, no 17/8 anywhere in the recovery path; the constants are properties of the recurrent-set combinatorics that the DYNAMICS must find on its own, and they are loaded from the reference only to score. Non-circularity is additionally checked in-script: the rival gate proves the identical measurement machinery returns 1.5/0.25 on a different measure, and the tamper self-test proves the scoring actually bites. This is the lab's FIRST exactly-validated self-organized-criticality result — unlike ising/percolation/logistic/kuramoto/stdmap, where the lab had to DIAL a parameter to the critical value, here the criticality is an attractor of the driven dynamics itself: the 'tuning' is done by the pile, and the lab only verifies where it lands (17/8, with no knob in the entire model).

Module systematics

The module (?world=sandpile, src/modules/SandpileModule.ts, untouched this run) is honest at its core: the on-screen mean density is a REAL measurement of the live pile (incrementally tracked grain count, same convention 0..3 as the oracle), conservation is displayed as an exact integer residual, and the same mulberry32 PRNG family drives both. Disclosed systematics: (1) at the default grid L = 96 the on-screen stationary density reads ≈ 2.110, i.e. −0.7% below 17/8 — this is NOT an error but exactly the oracle's boundary-depletion law: 2.125 − 1.304/96 = 2.1114, within noise of the sweep's measured ρ(96) = 2.11035; the screen shows the finite-L value, the oracle extrapolates the L → ∞ constant. (2) The on-screen avalanche exponent τ ≈ 1.1 is an effective log-log slope over the scaling window; the 2-D BTW size distribution is multifractal (no single clean exponent exists), which the module itself discloses in its header comment and is why τ is NOT an oracle gate — the exact constants 17/8 and 2/π² − 4/π³ are.

Notes

0 retries — 12/12 gates on the first full run (~32 s), scratchpad-prototype-first recipe (2 prototype scripts before authoring). The estimator trap caught at design time: the bare linear 1/L extrapolation of ρ(L) is curvature-biased by −5e-4 (4.3σ with 6 seeds) — the quadratic intercept absorbs the 1/L² term and lands 1.3 SE from 17/8 (estimator lesson: fit the correction the physics predicts, like blackbody's cubic-vs-quadratic vertex). Tolerances itemized from prototype SEs plus disclosed bias bounds, never padded (tolerance.note in the reference). Manual tamper test: known_value 2.125 → 2.155 ⇒ gates A/C/D/F3 FAIL, exit 1, recovered value unchanged (2.124489); restored by hand. Module untouched → gate = build + derisk only, per the ROUTINES table.

Confidence & reproduction

Confidence
high
Validation
derisk-pass
Re-run the check
npm run derisk -- sandpile (scripts/sandpile-derisk.mjs)
Oracle
scripts/oracles/sandpile.reference.json

Sources

P. Bak, C. Tang, K. Wiesenfeld, 'Self-organized criticality: an explanation of 1/f noise', Phys. Rev. Lett. 59, 381 (1987); D. Dhar, 'Self-organized critical state of sandpile automaton models', Phys. Rev. Lett. 64, 1613 (1990); S. N. Majumdar, D. Dhar, 'Height correlations in the Abelian sandpile model', J. Phys. A 24, L357 (1991); V. B. Priezzhev, 'Structure of the two-dimensional sandpile. I. Height probabilities', J. Stat. Phys. 74, 955 (1994); V. S. Poghosyan, V. B. Priezzhev, P. Ruelle, 'Return probability for the loop-erased random walk and mean height in the Abelian sandpile model: a proof', J. Stat. Mech. (2011) P10004.

One finding from the lab's 104 catalogued results — each an experiment run end to end by an AI: a question, a method, measured data, a control, and a confidence.