Cellular automata · self-organized criticality

Abelian sandpile

In the abelian sandpile a square with four grains topples, passing one grain to each neighbour; in whatever order the squares topple, once nothing is left to topple the pile is the same.

The abelian sandpile in this visualization

In the abelian sandpile, each square of the board holds a number of grains h(x). A square with four or more is full and may topple, giving one grain to each of its four neighbours:

h(x)→h(x)−4,h(y)→h(y)+1(y∼x).h(x) \to h(x) - 4, \qquad h(y) \to h(y) + 1 \quad (y \sim x).

A grain sent over the edge of the board falls into the sink and is gone. A board with no full square is stable, and h∘h^\circ is what h becomes once it has toppled until it is stable. Here you can pour sand, topple it in different orders, add piles together and watch the pattern a big pile leaves.

The colours show 0, 1, 2 or 3 grains, and a full square about to topple has the strongest contrast. Every experiment runs on two boards. On the main board, full squares topple the way you choose: as sand trickles in, at random, or when you click them. The twin board at the top of the panel gets the same sand at once and topples every full square together. When both are stable, the page compares them square by square, in grains and in how many times each square toppled. Topplings colours each square by that count.

Why do the two boards always agree? Toppling a square never takes grains from another square; it only adds to its neighbours. So when two squares are full, toppling one leaves the other full, and toppling both, in either order, adds the same two changes to the board. Toppling also stops, because a square that toppled for ever would make its neighbours topple too, out to the edge, and the sand would drain away. Together these give the abelian property: every way of toppling until stable ends in the same state, and every square topples the same number of times.

If square x toppled u(x) times, it sent u(x) grains to each neighbour and received u(y) from each neighbour y, so

h∘(x)=h(x)+∑y∼xu(y)−4 u(x)=h(x)+Δu(x),h^\circ(x) = h(x) + \sum_{y \sim x} u(y) - 4\,u(x) = h(x) + \Delta u(x),

where h counts the starting grains plus all the sand added, u = 0 beyond the edge, and Δ is the discrete Laplacian.

Write a⊕b=(a+b)∘a \oplus b = (a + b)^\circ: add two piles square by square, then topple. Because the order does not matter, pouring a second pile on a settled one ends where pouring both at once does, which Two pours shows. Some stable states keep coming back: a state is recurrent when it can be reached from any state by adding sand and toppling. The recurrent states form a group under ⊕, and the start Identity shows its identity element e. Adding e to any recurrent state r gives r back, and adding e to itself gives e.

Topplings looks nothing like the grains. For a pile poured at one square of the empty plane, it is a smooth hill with nearly round contours. Away from the pouring square, h = 0, so the formula above reads Δu=h∘\Delta u = h^\circ. The final grains, between 0 and 3, are the hill’s tiny bending, recorded in whole numbers, while u itself runs into the tens of thousands. The grains form repeating patches, with curved bands between them.

Per Bak, Chao Tang and Kurt Wiesenfeld introduced the model in 1987 as an example of self-organized criticality, and Deepak Dhar found its abelian property in 1990.

Things to notice

  • The identity e is not the empty board. The empty board is the identity of all stable states under ⊕, but it is not recurrent, and e ⊕ 0 = e.

Related