THE GROUND / STRATUM · PATTERN SEAM
Drop three circles so each touches the other two. There is exactly one more circle snug in the gap — and one wrapped around the outside. Keep filling every gap this way, forever. Descartes proved that if the first four curvatures are whole numbers, all of them are, down through the infinite foam. Then the strange part: in this particular packing, none of those whole numbers is ever a perfect square.
A curvature is just one-over-the-radius: a small circle is sharply curved, a big circle gently. Sign it negative for the one circle that holds the rest inside. Four circles, each tangent to the other three, are bound by a single equation found by René Descartes in 1643 — and rediscovered so often it has a Nobel laureate's poem attached to it. The equation has a hidden gift: feed it whole numbers and it gives back whole numbers, forever. The result is a fractal made entirely of integers.
Below is one, grown live in your browser. It starts from the four curvatures −3, 5, 8, 8 and fills every gap by the rule Descartes wrote down — no images, no approximation, just arithmetic. Drag to pan, scroll or pinch to zoom into the foam, and click any circle to watch its curvature satisfy the theorem exactly.
Write the four signed curvatures as a, b, c, d. Descartes' relation is
(a + b + c + d)² = 2 (a² + b² + c² + d²).
Read as a quadratic in the unknown fourth curvature d, it has two roots — the small circle that nestles into the gap, and the big one that swallows the other three. Their sum is forced:
d + d′ = 2 (a + b + c), so d′ = 2(a + b + c) − d.
That single line is the whole magic. No square roots, no irrationals — if a, b, c, d are integers, the new circle d′ is an integer too. Reflect again and again and the integrality never leaks. (The circles' positions obey the same reflection, applied to the complex number "curvature times centre" — the extended Descartes theorem of Lagarias, Mallows and Wilks, 2002 — which is exactly how the picture above is computed: pure reflection, no drift.)
The theorem was old before it was famous. Descartes sent it to Princess Elizabeth of Bohemia in 1643; Steiner, Beecroft and others rediscovered it; and in 1936 the chemist Frederick Soddy, fresh off a Nobel Prize, restated it as a poem in Nature called The Kiss Precise — which is why a circle's curvature is sometimes called its "bend." (The poem is likely still under copyright, so it is named here, not reproduced.)
Once a packing is integral, a natural question is: which integers show up as curvatures? Not all of them. A short argument modulo 24 shows the curvatures of any primitive integral packing are trapped in just six or eight residue classes mod 24 — a hard local law. For our (−3, 5, 8, 8) gasket the allowed classes are exactly
{ 0, 5, 8, 12, 20, 21 } (mod 24)
— a fact you can confirm in the sieve below (every lit column is one of these, computed from the packing itself, not asserted). Call an integer admissible if it lands in one of these classes. The obvious guess, made precise around 2003 by Graham, Lagarias, Mallows, Wilks and Yan and refined by Fuchs and Sanden, was the local–global conjecture: every sufficiently large admissible integer is actually a curvature. The local law is the only obstruction; pass it, and (eventually) you're in.
It looked all but settled. Bourgain and Fuchs (2011) proved the curvatures have positive density; Bourgain and Kontorovich (2014) proved almost all admissible integers appear — the number missing below N is at most O(N¹⁻ᵉ), a vanishing fraction. Density one. The conjecture seemed one hard push from a theorem.
Here is the sieve. It runs the same reflection rule and finds every curvature up to the bound N — so within N nothing is guessed: an integer is either reached or provably not. Each column is a residue class mod 24; lit cells are curvatures that occur, dim-red cells are admissible integers that nonetheless never appear, grey cells fail the local law. The circled cells are the perfect squares.
Switch instrument I to the (−1, 2, 2, 3) "bug-eye" and watch the squares turn grey: there they are forbidden for the dull reason — their residues just aren't in the admissible set. In (−3, 5, 8, 8) they turn red. That is the whole difference. The squares 36, 144, 324, 576, … are admissible — they sit in classes 0 and 12, classes that teem with hundreds of thousands of ordinary curvatures — and yet not a single perfect square is ever a curvature of this packing. Pushed to three million, the generator finds 748,684 distinct curvatures and zero squares. (That run is in the repository; the sieve here recomputes the small end live.)
Every circle is a whole number. None is a perfect square. Not one. Ever.
In the summer of 2023, in a research program at the University of Colorado Boulder, Summer Haag, Clyde Kertzer, James Rickards and Katherine Stange were staring at exactly this kind of plot. The squares' absence was too clean to be an accident of a finite search. They proved it isn't: the local–global conjecture is false. Their paper — The local–global conjecture for Apollonian circle packings is false, in the Annals of Mathematics, 2024 — shows that the missing squares are a permanent feature of the (−3, 5, 8, 8) packing, and that infinitely many packings each miss on the order of √N admissible curvatures below N — far more than density-one allows.
The reason is the prettiest part. The obstruction isn't a congruence — no modulus, however large, sees it. It comes from quadratic and quartic reciprocity: whether a given integer can be a curvature depends on a Legendre-symbol condition that varies with the integer itself, the way the law of reciprocity flips depending on the primes involved. It is, in the authors' words, "reminiscent of a Brauer–Manin obstruction" — the famous way an equation can have solutions everywhere locally and none globally. And it is a property of the thin Apollonian group, invisible to the coarser group whose congruences gave the mod-24 law. The local law was real, but it was never the whole law.
So the picture you've been zooming through is an honest counterexample to a conjecture that stood for two decades — and a small monument to a habit this whole site keeps: when a pattern looks too perfect, don't believe it. Compute it. Then prove it.