Repository navigation
Description
Credit name. Evan Daniel (GitHub @evand).
Claims. Four new upper bounds. Each is the certificate's exact rational side, rounded up at 12 places. Global optimality is not claimed.
| n | new upper bound | best public bound before it | improvement | that bound's source |
|---|---|---|---|---|
| 172 | 13.617935698382 | 13.618988956900 | 1.05·10⁻³ | register (Francisco Couzo) |
| 204 | 14.807627471882 | 14.808642830514 | 1.02·10⁻³ | register (Francisco Couzo; #719, Mishapolk, same value) |
| 260 | 16.633982502122 | 16.637029558871 | 3.05·10⁻³ | #844 (Francisco Couzo, open); register 16.645753250520 |
| 293 | 17.633982502123 | 17.634146341464 | 1.64·10⁻⁴ | register (David Ellsworth) |
Comparison = the lowest of the register (main @3978a7f6), open and closed issues through #844, David Ellsworth's catalogue, public Kaggle notebook outputs we have imported, and the monotone envelope; checked 2026-10-28.
For information (side-only claims). Kaggle's per-puzzle leaderboard (staff notebook output, newest row 2026-10-28 02:29 UTC; no coordinates) lists lower sides at three of these counts, all for the team Cats and boxes: 172 at 13.614689853312 (2026-10-27 00:05 UTC), 204 at 14.803489183116 (2026-10-27 21:40 UTC), 293 at 17.623065212098 (2026-10-27 00:05 UTC). We can't check them. As far as we know, ours are the best publicly known packings at those three counts. At 260 the lowest side listed is 16.635570520546 (Cats and boxes, 2026-10-27 09:33 UTC), above ours.
Certificates. In https://github.com/evand/square-packing at commit d2d5dd96:
| file | what | SHA-256 |
|---|---|---|
s172_1028.cert |
exact KKT point, rational certificate (S' = 2723587139676283080823463207799/200000000000000000000000000000) | 1e16ad2789538610a42ebec7f735d932fdbe8125a7c991801e644b6f072352b9 |
s172_1028_regularized.cert |
regularized view, same side | 0ab41bff6847fc3929e91253b9a2db021db0f9406915d32b6eec40d523d2eb1a |
s204_1028.cert |
dilation certificate of s204_1028.input.txt (delta 1e-12) |
2b371e81d568ad5c4490257dcfdb87cd1e238232bb60bd1ece4844340af0a2c3 |
s260_1028.cert |
dilation certificate of s260_1028.input.txt |
d6d6f45f600f6552416ea3708d8ee04416cfe88820ee4c3c422d8e131d7cdf87 |
s293_1028.cert |
dilation certificate of s293_1028.input.txt |
236bc05f057a28df402c09453f4ccce35d63b518f4f0305419889612f07c42bc |
The f64 inputs (s<n>_1028.input.txt) and the run summaries (s<n>_1028.json) are next to them.
Credit and relationship.
- 172: a new packing (a different local minimum from the register's: exact sides differ by 1.05·10⁻³, contact graphs differ), found by our search. Its lineage starts at the s(199) record (Nate Chaoweeraprasit (itsnaka), improved by Siddharth Gupta): please credit that packing as the start.
- 204: a new packing found by our search; its lineage starts at Daniil Ostashev's s(176) packing (s(176) ≤ 13.795872318437, s(211) ≤ 14.993694186584, s(241) ≤ 15.987134249051, s(304) ≤ 17.929427758076: registration request #575), used as a seed at n = 204. Please credit it as the start. It is not a refinement of the register's packing (its certified side is 1.0·10⁻³ below their exact side).
- 260: a new packing found by our search. Its binding block came from a search started from Kirill T (kirilltym)'s s(260) in his public Kaggle notebook "Square Packing Lab | CPU/CUDA/MPS" (side 16.638543986, 2026-10-26): please credit that packing as the start. It is not a refinement of 232, 260, 307: registration request #844's packing (sides differ by 3.05·10⁻³; 197 squares move more than 0.1).
- 293: our 260 packing plus one L-shaped strip (a row and a column, Friedman's L step: 260 + 2·16 + 1 = 293, side + 1). Same credit as 260.
Checking
search/exact/verify_cert.py (separating axes) and search/exact/verify_cert2.py (polygon intersection) both report VALID on all five certificate files; exact rational arithmetic, standard library only, e.g. python3 search/exact/verify_cert.py search/packer/candidates/s260_1028.cert. The two checkers share an author (us) and the certificate format; the geometry tests differ.
Local optimality
Numerical evidence at 80 digits, not interval proofs.
- 172: exact side S* = 13.617935698381415403981…; a KKT point; a local minimum of S, strict modulo 69 exact flat motions; no corner–corner MILP descent; 41 corner–corner contacts, 25 rattlers.
- 204, 260, 293: not established. Our exact solver did not converge on these, so the certificates dilate the f64 packings (by 1.5·10⁻¹¹ to 1.8·10⁻¹¹). The 204 packing was first exact-descended (corner–corner MILP kick and re-solve, 14.807630214 → 14.807627472).
Relationship to earlier packings: the numbers
Refinement here means the same local minimum only; otherwise a new packing found from it. Matched moves are over the best of the 8 box symmetries (largest move; count of squares moving more than 0.1 / more than 0.01).
| n | compared with | side gap | matched moves (max; > 0.1; > 0.01) | verdict |
|---|---|---|---|---|
| 172 | register (Couzo), exact KKT both | 1.053·10⁻³ | 0.701; 23; 24 (load-bearing, regularized views) | different local minimum: contact pairs 213 shared, 89 only ours, 109 only theirs; load-bearing tilts 44.6064° ×30 (ours) vs 44.7301° ×34, 44.9703° ×2 (theirs) |
| 204 | register (Couzo) | 1.015·10⁻³ | 0.912; 71; 114 | new packing (our upper bound is below their exact side) |
| 260 | #844 (Couzo) | 3.047·10⁻³ | 1.096; 197; 230 | new packing |
| 260 | kirilltym's Kaggle 260 (start) | 4.56·10⁻³ | 1.064; 190; 202 | new packing |
| 293 | register (Ellsworth, 723/41) | 1.64·10⁻⁴ | 1.048; 194; 221 | new packing |
How it was found
All four are hunts: population searches over our packing store, where the credited start was one packing among many and the records turned up several generations later.
260 (and 293). Every packing involved has a tilted island of about 100 squares inside a grid frame, and the island sets the side (k + a fixed fraction). The public island family (kirilltym's 260, and later the same island at other n in public Kaggle notebooks) has the fraction .63853.
- 2026-10-26: a fault-line composition at n = 405 used kirilltym's 260 as a donor (side 20.638543986: the same island).
- 2026-10-27: 15 generations of refill (remove a line or disc of squares, re-place them, relax) at n = 405 took it to 20.633982503. The gain is in the island: its tilt went from 24.08° to 24.51°, with a ring of about 15 slightly tilted squares between it and the grid.
- 2026-10-28: a composition run put that island into a 260 frame (16.633982502), and into 293 and several larger n. The 293 is the 260 plus an L-shaped strip. This run's log was not kept; steps 1–2 are in our store's move log.
- Polish and certify.
172. An explorer search at n = 199 (2026-10-17) started from the s(199) record, and after a fingerprint-diverse sweep (2026-10-20; 24 starts, all from our store except two of David Ellsworth's catalogue packings) gave an s(199) at 14.617935698, not a record. Removing one L-shaped strip gives 172 at side − 1. Polish and certify (a KKT point).
204. An explorer goal at n = 204 (2026-10-24) seeded with Daniil Ostashev's s(176) (#575); nine generations in that goal's runs to 14.807642, then three refill generations (2026-10-27) to 14.807630, then polish and certify (exact descent to 14.807627472, then a dilation certificate).
Activity
intake(#843-#846, #824 update): render the views, verdict comments, #846
records: map the five stage 4 reviews of #852; T-260 split from T-259
jlevy commentedon Oct 31, 2026
@evand, thank you; this is the report-order evaluation of every open report at the counts #845 claims.
At each count, a report is recorded when its side is decidably below every side reported before it (and below the record on main); a tie stays with the earlier report. Sides are rounded up at 12 places.
All four are below everything reported before them, so each is recorded, a new packing as you say. At 260 the reports before yours are Francisco Couzo's a5a5d76 and #844.
The registrations are in the records pull request #852, and a follow-up with the result ids and rungs will come once it is on main.
Generated by Claude Code
jlevy commentedon Oct 31, 2026
@evand, thank you for #845. All four certificates are imported, reviewed and adopted. The report-order verdict is in the comment above; this is where the record on
mainstands.sqpack.verifyanddevtools.check_rational_witness_independent, throughdevtools.upper_bound_reports. The stage 4 review (review-2026-10-31-daniel-845-172-204-260-293.md) is an independent implementation:exact_check.pyandcontrols.py. That clean-room checker uses separating axes over every pair and exact clipped areas, with ten sharp controls at each count. Your own code was not re-run. The review's checker is a Claude agent's, as your commit's co-author is.Evidence entries.
E-evand-845-certificate-report, the four certificates as reported, is reviewed.E-evand-845-exact-feasibility, the maintained routes' replay, andE-evand-845-review-exact-feasibility, the review's checker, are confirmed.On
mainand the site.packing/frontier/RESULTS.mdn-172.md,n-204.md,n-260.md,n-293.mdThe review left four questions. An answer to any of them is welcome, but none holds this issue open:
s204_1028.exact.txtsits 2.56e-11 below the certificate.Nothing you asked for is queued, so this issue is closed with this comment.
Generated by Claude Code
requests(#860, review A): T-259 names no finished owner; the confirme…
fix(#897, senior review): F1 to F7, F11 and F12
fix(#916, CI): the results page and case 260 budgets hold seven new r…
records(L76): the senior review of PR #940 (L79) taken in
jlevy commentedon Nov 11, 2026
@evand, a short follow-up to our closing reply of 31 October, which gave T-257 as current.
Correction. T-257, your #845 certificates, s(172) ≤ 13.617935698382 (with s(204) ≤ 14.807627471882, s(260) ≤ 16.633982502122 and s(293) ≤ 17.633982502123), still stands as a verified bound, V3/C3, confirmed. It is no longer the best known at any count: on the frontier it now reads superseded.
What superseded it. At 172, its last house, Doğa Özden's T-282, s(172) ≤ 13.614689853287, reported on #935, is a further arrangement of your packing, 3.25e-3 below T-257. The optimal assignment under the identity moves 15 squares beyond a tenth, in a local change within a block of squares turned about 45 degrees. It was confirmed at V3/C3 when #937 merged, and the case at 172 adopted it as its house on 9 November. T-257 is kept at 172 as history. The case still names you as the packing's finder, with Özden as its improver, and the record credits your ALM+SLP quench as the local optimizer of his search. The drawing at 172 is now your regularizer's view of T-282, at its side. At 204, 260 and 293 T-257 had already stopped being the house: your #914 packings, T-268, T-269 and T-271, hold those counts. #935 has its own reply.
On
mainand the site.packing/frontier/n-172.mdThe issue stays closed; this reply only brings what the record says up to date.
Generated by Claude Code
Merge pull request #950 from jlevy/claude/bold-ritchie-xo28us-l86