LLM Circle Packing: The 26-Circle Discovery, Verified
Blankline Research — the team behind the Dropstone agent line — claims a frozen LLM with an external memory loop found a 26-circle packing whose structure is provably different from every published solution. They published the whole run: all 91 attempts, a verbatim reasoning log, and a verifier that runs with one command and zero dependencies. I cloned the repo and ran it. Then I read their own control experiment, which came back not supported. Both halves matter.
The Ten-Second Check
The claim dies instantly if the coordinates are wrong. They aren't. Per the README: Node 18+, no install step. I ran node verify.mjs in the cloned repo and got exactly what they promised:
$ node verify.mjs
circles 26
sum of radii 2.635917599028
max violation 2.776e-17 (overlap 1-13)
valid @ 1e-9 yes
valid @ 0 no — needs a uniform radius reduction of ~1.4e-17
recorded score 2.635917599028184 (drift 0.00e+0)
The verifier is about forty lines of plain JavaScript — pairwise circle overlap plus wall constraints, no deps, no symbolic math, no tricks. They're also honest about the one caveat: at exact zero tolerance the packing technically needs a uniform shrink of ~1.4e-17, which is well inside float noise for a problem of this size. The archived score drifts from the measured one by 0.00e+0. Someone checked their arithmetic.
The repo even ships AlphaEvolve's n=26 coordinates, so you can compare directly: node verify.mjs pack26-discovery/alphaevolve-n26.json reports sum 2.635862756414. Their memory loop's raw best — before any post-processing — is 2.635907462261. That's +4.5e-5 over DeepMind's evolutionary coding agent, out of the gate.
Structure, Not Score
Before you get excited: their final value is not a record. Six published results beat it, including a plain simulated-annealing heuristic with no model in the loop (2.6359372) and the Packomania record at 2.635983084919. They open the README's "What this is not" section with exactly that sentence. Most AI labs would bury this. They printed it.
What they actually claim is structural, and it's the part that survives scrutiny. Packings have contact graphs — which circles touch which, which touch the walls — and a degree sequence is invariant under relabeling, so two graphs with different degree sequences cannot be isomorphic. Theirs is 22222333334444444444555556 (48 edges). The record family is 22333444444444455556666667 (58 edges). I ran their contact-graph.mjs proof: PROVABLY NON-ISOMORPHIC against AlphaEvolve, Packomania, and Hyra. Different structure means a different basin of the search space — not a perturbation or convex blend of known solutions.
The provenance table is where the honest work is. The final number is three stages, and only stage 1 involves a model:
- Memory loop, best of 91 attempts (model) → 2.635907462261
- + LP radii & relocation (human, model-free) → +4.73e-6 → 2.635912195016
- + Seed & parent sweep (model-free) → +5.40e-6 → 2.635917599028
The model repeatedly identified the LP insight in its reasoning trace — and never implemented it. A human did. Same division of labor FunSearch showed in 2023: the LLM sees the move, the human has to actually code it.
graph LR A["Frozen LLM + memory loop
91 attempts, 32.4h"] -->|"2.635907462261"| B["Human LP radii + relocation"] B -->|"+4.73e-6"| C["Seed & parent sweep
(model-free)"] C -->|"+5.40e-6"| D["2.635917599028
48 edges, provably non-isomorphic"]
The Control That Wasn't Run
"Extrapolation" is a causal claim about the memory loop, and causal claims need counterfactuals: memory-free runs with a matched budget. Their own §9.3 says exactly this, and says the experiment hasn't been run. They shipped the harness anyway — structural-search.mjs, no model. I burned 30 seconds of it: 1280 basin hops from the incumbent, best 2.635912199566, +0.005 micro. It stayed in the incumbent's basin. That's an anecdote, not a test — 30 seconds against their 32.4 hours. Which is precisely the point: the run that would settle the claim is cheap to attempt and still hasn't happened.
Worse for the mechanism: their own published control for the same loop design, on an independent benchmark, memory ON vs OFF, came back with the verdict written in plain words: "NOT SUPPORTED — treatment did not separate from the memory-off control." They ship that null result in the repo. It's the only controlled evidence they publish, and it cuts against the general claim.
And you can't rerun the loop itself: src/evolve.mjs is an internal Dropstone system. You get the fully recorded output — 91 attempts with timestamps and failure reasons, a 214KB verbatim reasoning log — but not the engine. The retrieval-failure half of the story rests on the model's own self-report, which the write-up openly labels its weakest condition.
Bottom Line
Take it as an existence result, well-oxygenated and honestly scoped. The arithmetic checks out, the receipts are complete, and the "What this is not" section is more candid than most lab papers I've read this year. What it is not is evidence that memory conditioning makes models extrapolate: the decisive control is unrun, the one control they did run failed, and the system is closed. The real contribution is the publishing standard — exact verifier, full archive, self-nullifying control included. That's the bar AI-discovered math should be held to. And if someone burns a matched budget in structural-search.mjs, the case closes either way.