The abelian sandpile settles at 17/8 grains per cell, but its identity element does not: computed on grids up to 512 on a side, its density reaches 2.3185 and is still rising. We committed eleven predictions to git before the runs; three failed, and a 1995 description of the identity's central square does not match what the computer draws.
The abelian sandpile has a famous number. Drop grains of sand on a square grid, let any overloaded cell topple, and in the long run the grid settles at an average of 17/8 = 2.125 grains per cell. The model also has a famous picture: its identity element, the configuration that acts as zero when sandpiles are added, draws a fractal.
The identity does not hold 17/8. We computed it on square grids up to 512 cells on a side, and its density climbs past 2.125 and keeps climbing: 2.2754 grains per cell at N = 64, 2.3123 at N = 256, 2.3185 at N = 512. No paper we read states the number it is heading toward.
Before each round of computing we committed our predictions to git, then ran the code and graded them. Eight of eleven held. The three that failed were the useful ones: two showed that grid sizes come in families, and the third caught a square that had doubled exactly whenever the grid did, then fell two cells short. And a 1995 description of that square, the best-known statement about the identity's shape, does not match what the computer draws.
Take an N × N grid. Each cell holds 0, 1, 2 or 3 grains. A cell that reaches 4 topples: it gives one grain to each of its four neighbours, and a grain pushed past the edge of the grid is lost. Keep toppling until no cell holds 4 or more, and the result is stable. To add two configurations, add them cell by cell and topple until stable. On the configurations the model keeps returning to, the recurrent ones, this addition makes a finite abelian group, as Deepak Dhar sets out in his 1998 review of the model (p.4). Every group has an identity, and here it is the one recurrent configuration that changes nothing when you add it to another. We write e for it. Its density is just its average number of grains per cell.
Michael Creutz reported "the existence of an identity element" in 1991, with "patterns exhibiting many different scales" (his laboratory report, p.5). Dhar, Ruelle, Sen and Verma wrote in 1995 that "the identity configuration shows complicated fractal structures" (p.29). Drawn with darker greys for more grains, it is a flat grey square at the centre, set in a black four-pointed star, with patterned petals that repeat at smaller and smaller scales toward the corners. In 2008 Sergio Caracciolo, Guglielmo Paoletti and Andrea Sportiello wrote that no closed formula had been found for it, "not even in the case of a L × L square" (p.3), so its density is something you compute.
Two well-known densities sit nearby, and neither is the identity's. With heights counted 0 to 3, the stationary density, the average the sandpile settles at when grains keep arriving, is 17/8. Grassberger conjectured it from a numerical evaluation, and it was proved in 2011 by Poghosyan, Priezzhev and Ruelle (their paper counts heights 1 to 4, where the same number reads 25/8) and, separately, by Richard Kenyon and David Wilson. The second number is 2.125288, the threshold density of a related "fixed-energy" sandpile, which Anne Fey, Lionel Levine and Wilson found to be "close to but not exactly equal to 17/8" (p.2).
The identity's own density is a different quantity. Here it is at the sizes we computed:
| grid side N | density (grains per cell) | share of cells holding 3 grains |
|---|---|---|
| 8 | 2.1250 | 0.375 |
| 16 | 2.1250 | 0.375 |
| 32 | 2.2344 | 0.469 |
| 64 | 2.2754 | 0.506 |
| 96 | 2.2839 | 0.527 |
| 128 | 2.2983 | 0.536 |
| 192 | 2.3036 | 0.537 |
| 256 | 2.3123 | 0.547 |
| 384 | 2.3151 | 0.551 |
| 512 | 2.3185 | 0.559 |
The 17/8 at N = 8 and N = 16 is a coincidence of small grids: the two identities have identical shares of 0s, 1s, 2s and 3s. Small grids swing widely in both directions (2.50 at N = 4, 1.80 at N = 7). Across the sizes we computed from N = 32 up, the density rises at every step.
We looked for a published value of the limit and did not find one. Alexander Holroyd and five co-authors conjectured in their survey of chip-firing that the identity's picture has a limit (Conjecture 6.4, p.31), but give no density. The only density we found for an identity is 8/3, which a 2026 paper by Robin Kaiser, Ecaterina Sava-Huss and Julia Überbacher gives as "the asymptotic average chip density of the sandpile identity element" on Sierpiński gasket graphs (p.3), a different family of graphs from the square grid. Our search was a single pass, and two relevant works went unread (listed at the end), so this is a weak negative: no paper we read states the number.
We had computed the identity once before, up to N = 192, with an earlier program. For this piece we wrote a new one, with a different toppling loop and a second formula for e, and we wrote down what we expected before running it. The predictions went into git at 14:20:30 UTC on 2 November 2026, in commit 7e2b239dc5, before the new program existed.
The first three predictions were checks of the machinery, and all held. The new program matched the earlier tables at all 15 sizes they list, to every printed decimal. Its two formulas for e gave the same grid at every size from 4 to 256. And e behaved as an identity: added to 25 random recurrent configurations at each size up to N = 128, it changed none of them, and e plus e gave e.
Then came the numbers. A simple curve of the form a + b/N, fitted through the old results at N = 128 and N = 192, levels off near 2.314. From it we predicted a density between 2.304 and 2.310 at N = 256, and between 2.306 and 2.314 at N = 384. Both came in high: 2.3123 and 2.3151. The N = 384 value had already passed the level the curve said was the limit.
Looking again, we saw what the curve had missed. Grid sizes fall into two families. The sides that are powers of two (64, 128, 256, 512) climb smoothly among themselves, and so do the sides that are three times a power of two (96, 192, 384), but the two families interleave. Going from 128 to 192 adds 0.0053; going from 192 to 256 adds 0.0087. A curve fitted through one size from each family mixes two curves, and that was our curve.
Within each family the steps shrink steadily, by a factor of about 0.6 each time the side doubles: +0.023 then +0.014 from 64 to 128 to 256, and +0.020 then +0.012 from 96 to 192 to 384. So we wrote a second round, committed at 14:36:02 UTC (commit 3cc0a06b85), before the N = 512 run: a density between 2.317 and 2.324, with 2.3207 as the point guess; a share of one-grain cells between 0.022 and 0.032; and a central square exactly 216 cells on a side.
The density came in at 2.3185, inside the band but below the guess, and the one-grain share at 0.0272. The square came in at 214.
Of the remaining predictions, the density rose at each step from 192 to 256 to 384, the one-grain share stayed between 0.025 and 0.040 at N = 256 and N = 384 (0.0262 and 0.0276), and our search found no stated limit. Eight held, and the three that failed are the two density bands of the first round and the square.
Before the N = 512 run, extending that pattern put both families near 2.33. The step from 256 to 512 then came in at 0.0062, less than half the step before it, which pulls that guess lower. It is an extrapolation from four sizes in one family and three in the other, not a measurement.
The flat grey square at the centre of the picture is made entirely of cells holding 2 grains, and it scales with the grid with odd precision. For N = 96, 192 and 384 its side is exactly 5/12 of N: 40, 80 and 160 cells. For N = 128 and 256 it is exactly 27/64 of N: 54 and 108. Each time the grid's side doubled, so did the square's, from 40 to 80 to 160 in one family and from 54 to 108 in the other, which is why we predicted 216 at N = 512. It came in at 214, two cells short of double.
The square is not a measuring artifact. At both N = 256 and N = 512 it is framed by a ring of 3s with a 2 at each of the four corners, and the next three rings out hold the same numbers of 0s and 2s at both sizes; only the runs of 3s get longer. We do not know why the doubling breaks at 512. Nobody yet knows why the square is there at all. Holroyd and his co-authors wrote that "most basic properties of this configuration, such as the existence of the large square in the center, remain unproved" (p.8), and Kaiser and his co-authors in 2026 describe the conjecture as still open (p.2).
The best-known statement about that square is in the 1995 paper by Dhar, Ruelle, Sen and Verma: "in the central area of a 2L × 2L lattice, there is a whole square where all sites have maximal height, equal to 3. The linear size of this central square was numerically measured for L up to 100, and goes like 4L/5, so that the central square covers approximately 4/25 of the whole lattice" (p.29). A footnote thanks Jean-Louis Ruelle "for having run a program to compute the identity, and for having pointed out these two regularities."
Our computed identity disagrees on both counts. The central square holds 2s, not 3s; there is not a single 3 inside it. And it is larger than 4L/5. On their largest grid, L = 100, so N = 200, the square's side is 84, where 4L/5 gives 80. Across all the sizes we ran, the side is between 0.4167 and 0.4219 of N, never 0.40, and the square covers 17.4 to 17.8 percent of the grid, against their 4/25, or 16 percent.
We checked that we and they mean the same heights. The 1995 paper counts stable heights from 0 up to one less than the number of grains a toppling cell sends out (p.4); on this grid that is 0 to 3, as ours. Its printed identities for the 2 × 2 and 3 × 3 grids (equation 7.11, p.30) match our program's output cell for cell: all 2s for 2 × 2, and 2, 1, 2 / 1, 0, 1 / 2, 1, 2 for 3 × 3. And the 2026 paper by Kaiser and his co-authors describes the same conjecture as "a central square of vertices with two particles each" (p.2), which matches the computer and not the 1995 sentence.
One possible reading is that the program behind the footnote printed heights from 1 to 4, in which case its "3" is our 2. We do not know that it did. What we can say is that the description as printed, in the paper's own stated convention, does not match the identity the computer draws.
Two questions are left, and we can answer neither. The identity's density was still rising at N = 512, and where it stops is unknown; the guess near 2.33, which the N = 512 step already pulled lower, rests on seven sizes in two families. And the central square's doubling, which held from 40 to 80 to 160 and from 54 to 108, failed by two cells from 108 to 214, for a reason we cannot see. The computing time grew roughly as the fifth power of N across the sizes we ran (11.2 seconds at N = 192, 414 seconds at N = 384), though the last doubling, from 64.6 seconds at N = 256 to 1,095 seconds at N = 512, cost only about 17 times as much. Between those two rates, N = 1,024 would take about five to ten hours on the machine we used: an overnight run, with the scripts below.
Show your work. Every computed number above comes from five short scripts, which we publish with this piece:
sandpile.py computes e two ways, as S(6 − S(6)) and S(7 − S(7)), where S topples a grid until stable and 6 or 7 means that many grains on every cell, and checks the group law.square.py measures the central all-2 square.ring.py counts the heights in the rings around it.small.py compares our 2 × 2 and 3 × 3 identities with the 1995 paper's equation 7.11.render.py draws the pictures.To rerun them you need Python with numpy, and Pillow for the pictures. Make a folder named npy and run python sandpile.py 64 128 256 512 --save-dir npy, with whichever sizes you want. square.py and ring.py read the saved grids (ring.py needs N = 256 and 512), python render.py 384 draws N = 384 once it is saved, and small.py runs on its own.
The predictions were committed to git before the runs they predict: round one in 7e2b239dc5 (14:20:30 UTC, 2 November 2026), round two in 3cc0a06b85 (14:36:02 UTC); the results followed in cc20e012a9, 254c987bd2 and 3e7fe505e2. That repository is ours and not public, so the timestamps are our record rather than something you can audit; the scripts let you rerun every number.
What we searched. About five web searches for a published density of the identity (by density, mean height and scaling limit), and keyword searches for density, average, fraction and mean in the identity papers and surveys listed below and several others. Not done: a full-text search of arXiv. Not read: the 2002 paper by Le Borgne and Rossin on the identity, and Creutz's 1991 article in Computers in Physics, of which we read only the abstract.
Chain of Consciousness keeps a dated, tamper-evident record in hash-linked entries. Log a prediction before the computation that tests it, then the result, and anyone checking later can see which came first.
pip install chain-of-consciousness npm install chain-of-consciousness
Or start without installing anything: Hosted Chain of Consciousness.