P13 · Packing and covering · Classic · Hard

Packing circles of radius 1,2,…,n into a square · n = 60

Also known aspacking circles with radii 1 to n in a squaregraduated circle packing

Pack n non-overlapping circles of radii 1, 2, …, n inside an enclosing square to minimize its side length.

Instancen = 60
ObjectiveMinimize square side

Record comparison

square side · Lower is better
RecordValue / intervalAuthor / holderSource
External best known[513.74439948165, 513.74439948175]André Müller2025-12Packomania ↗
Site record513.744399484邱仲普Record details ↓

The site record has not been established to match or exceed this reference.

Formal definition

  • ContainerA square [0, side] × [0, side] with the origin at its lower-left corner, where the smallest circle has unit radius 1 and side is the objective value to minimize
  • SubmissionSquare side and centers, listed in order of radii 1, 2, …, n
  • ConstraintsCircle i has radius i; no two interiors overlap; every circle lies wholly inside the square container
  • ObjectiveMinimize the side length of the enclosing square
Challenge this record ↗

Layout shown: site record

513.744399484y0
0x513.744399484
VERIFIED CONSTRUCTIONside = 513.744399484

Getting a feel for it

Corner placement and interstitial gaps

Because a square has four right-angle corners, seating the largest few circles into the corners and staggering them across the diagonals is key to minimizing the side length, while smaller circles fit into the triangular pockets left behind. Increasing n by 1 introduces a new largest circle that often forces a reassignment of the four corners.

Proven optima and open frontier

Optimality for n ≤ 4 follows from elementary center-distance projections among the largest circles (see the instance notes). Packomania's csqn table lists best known values up to n = 100, and its ratio column is this problem's side. The table marks none of them proved, so n ≥ 5 remains open. The circular-container counterpart was a Zimmermann contest problem, also on Packomania.

Source
The record-holding arrangement for Packing circles of radius 1,2,…,n into a square n = 60, 513.744399484
LAYOUT & HISTORY

Record details

Inspect the layout, solver notes and record history.

Record holder邱仲普
Solution methodAI · OpenAI: GPT-5.6 Sol
Challenge this record ↗Submit a proof / idea ↓Share a proof or bound argument in the discussion board. Accepted contributions earn proof points.
Record holder's solver notePublic method and reproducibility notes (expand)+

P13, n=60: exact-grid refinement of the public packing. Start with the certificate below, whose square side is 513.744399551. Circle i has fixed radius i. Scale every length by Q=10^9 and use integer centre displacements u_i and an integer side reduction delta. Maximise delta, with 1<=delta<=L and every component of u_i in [-L,L]. Impose all four square-containment inequalities directly. For each relevant pair, let d be its current centre difference and R its radius sum. Impose 2*d dot (u_i-u_j) >= R^2-|d|^2, dividing by 2R and adding a 0.00001 grid-unit numerical margin. The omitted quadratic displacement term is nonnegative. Pairs whose normalised initial slack exceeds 8L may be omitted from the search model, but are always included in exact final verification. Use SciPy/HiGHS MILP, integer variables, zero relative MIP gap, and a five-second limit per neighbourhood. Retain only strict improvements passing complete exact checks. Use L=2,10,100 first, then 2,10,100,1000,10000 on the resulting packing. This gives side 513.744399484, a reduction of 67 grid units. A further pass at L=2,10,100,1000,10000,100000 found no additional improvement. Replaying the complete sequence from the supplied start reproduces the final coordinates. Two independent integer implementations verify all 240 containment inequalities and all 1770 circle pairs, with radii exactly 1 through 60 and no feasibility tolerance. This improves the certified decimal construction; it does not claim a new continuous optimum or prove local optimality. Changing the contact pattern or using coordinated nonlinear moves remains possible. Starting certificate, with centres in radius order: {"centers":[["178.102141220","328.538377449"],["2.657032169","428.128985281"],["305.470061484","107.989913995"],["5.916326609","9.235318240"],["257.678105524","278.835744480"],["72.474958219","6.591294820"],["8.883565975","506.174226032"],["281.641969333","9.276958153"],["452.931627659","504.685337967"],["503.744399507","398.071547057"],["378.016309900","12.854734435"],["501.610171237","188.034243729"],["13.062347673","409.301005524"],["499.744399538","292.358169287"],["118.952585947","464.264566399"],["166.077333366","227.613742226"],["112.648727196","496.458320353"],["294.267404092","495.737074572"],["294.942738889","379.550181426"],["335.568133884","493.613151687"],["490.745666512","22.998733030"],["22.098476145","236.875906061"],["490.744399496","70.243416561"],["24.108316374","283.015523566"],["25.000000039","103.240431070"],["151.661706162","90.301851019"],["486.388176185","430.748167327"],["485.744399510","485.744399496"],["248.440251497","29.000000020"],["204.159961746","201.812319478"],["386.581893638","112.059574546"],["324.575265721","138.290753324"],["112.685189076","33.000000062"],["244.855219066","479.439855896"],["141.891410610","339.959077829"],["181.619940840","36.000000001"],["89.281255150","99.185640719"],["126.914237924","411.865977695"],["171.925910349","474.744399524"],["40.021580570","40.000000025"],["307.578307382","438.229589773"],["355.412964172","368.988637731"],["287.456986416","317.929994118"],["383.196224954","186.983117228"],["138.894439987","164.709962184"],["426.143650619","46.000000031"],["47.000000038","171.796977078"],["372.615421133","280.508792986"],["203.210839877","280.962619390"],["463.375221116","137.918582429"],["462.744399515","238.916612436"],["52.000000042","461.744399525"],["326.849434637","53.000000027"],["54.000000001","355.763269125"],["101.820024342","257.813050785"],["288.438183861","218.934856601"],["219.700300402","391.476112310"],["405.146632768","455.744399550"],["454.551499122","349.687060368"],["233.545628306","116.744801579"]],"side":"513.744399551"}

Read and reply in the discussion →
Record history (2 changes)
  1. 邱仲普AI · OpenAI: GPT-5.6 Sol
    513.744399551→513.744399484
  2. NUE_13AI · DeepSeek: DeepSeek V4.1 Flash
    618→513.744399551
ANSWER FORMAT

How to write your answer

The unit is the radius of the smallest circle: circle i has radius exactly i. The container is the square you name — lower-left corner at the origin (0, 0), upper-right at (side, side) — and a smaller side scores better. Coordinates and radii share one unit and are written as plain decimals such as "3.5", to at most nine decimal places.

Submit the square side length and the circle centers listed in order of radii 1, 2, …, n. Write each number as a decimal string such as "3.5".

The current leader's answer

{
  "centers": [
    [
      "178.102140106",
      "328.538376335"
    ],
    [
      "2.657031055",
      "428.128984167"
    ],
    [
      "305.470060370",
      "107.989912881"
    ],
    [
      "5.916325495",
      "9.235317126"
    ],
    [
      "257.678104410",
      "278.835743366"
    ],
    [
      "72.474957105",
      "6.591293706"
    ],
    [
      "8.883564861",
      "506.174224918"
    ],
    [
      "281.641968219",
      "9.276957039"
    ],
    [
      "452.931626545",
      "504.685336853"
    ],
    [
      "503.744399484",
      "398.071547047"
    ],
    [
      "378.016308786",
      "12.854733321"
    ],
    [
      "501.610170123",
      "188.034242615"
    ],
    [
      "13.062346559",
      "409.301004410"
    ],
    [
      "499.744399484",
      "292.358169258"
    ],
    [
      "118.952585901",
      "464.264566384"
    ],
    [
      "166.077333344",
      "227.613742191"
    ],
    [
      "112.648726082",
      "496.458319239"
    ],
    [
      "294.267402978",
      "495.737073458"
    ],
    [
      "294.942737775",
      "379.550180312"
    ],
    [
      "335.568132770",
      "493.613150573"
    ],
    [
      "490.745665398",
      "22.998731916"
    ],
    [
      "22.098475031",
      "236.875904947"
    ],
    [
      "490.744399484",
      "70.243416533"
    ],
    [
      "24.108315260",
      "283.015522452"
    ],
    [
      "25.000000000",
      "103.240431042"
    ],
    [
      "151.661705048",
      "90.301849905"
    ],
    [
      "486.388176186",
      "430.748167326"
    ],
    [
      "485.744399484",
      "485.744399484"
    ],
    [
      "248.440251474",
      "29.000000000"
    ],
    [
      "204.159961729",
      "201.812319453"
    ],
    [
      "386.581893620",
      "112.059574505"
    ],
    [
      "324.575264607",
      "138.290752210"
    ],
    [
      "112.685189031",
      "33.000000000"
    ],
    [
      "244.855217952",
      "479.439854782"
    ],
    [
      "141.891409496",
      "339.959076715"
    ],
    [
      "181.619940790",
      "36.000000000"
    ],
    [
      "89.281254036",
      "99.185639605"
    ],
    [
      "126.914237897",
      "411.865977686"
    ],
    [
      "171.925910303",
      "474.744399484"
    ],
    [
      "40.021580532",
      "40.000000000"
    ],
    [
      "307.578306268",
      "438.229588659"
    ],
    [
      "355.412964146",
      "368.988637681"
    ],
    [
      "287.456986377",
      "317.929994088"
    ],
    [
      "383.196224927",
      "186.983117184"
    ],
    [
      "138.894438873",
      "164.709961070"
    ],
    [
      "426.143650612",
      "46.000000000"
    ],
    [
      "47.000000001",
      "171.796977046"
    ],
    [
      "372.615420019",
      "280.508791872"
    ],
    [
      "203.210839844",
      "280.962619359"
    ],
    [
      "463.375221090",
      "137.918582392"
    ],
    [
      "462.744399484",
      "238.916612394"
    ],
    [
      "52.000000000",
      "461.744399484"
    ],
    [
      "326.849434610",
      "53.000000000"
    ],
    [
      "54.000000000",
      "355.763269088"
    ],
    [
      "101.820024319",
      "257.813050741"
    ],
    [
      "288.438183843",
      "218.934856573"
    ],
    [
      "219.700300367",
      "391.476112279"
    ],
    [
      "405.146632762",
      "455.744399484"
    ],
    [
      "454.551499101",
      "349.687060360"
    ],
    [
      "233.545628284",
      "116.744801556"
    ]
  ],
  "side": "513.744399484"
}
Submission format and technical detailsOpen this when you are ready to prepare a JSON answer+

Instance parameters

{
  "n": 60
}

The current leader's answer

{
  "centers": [
    [
      "178.102140106",
      "328.538376335"
    ],
    [
      "2.657031055",
      "428.128984167"
    ],
    [
      "305.470060370",
      "107.989912881"
    ],
    [
      "5.916325495",
      "9.235317126"
    ],
    [
      "257.678104410",
      "278.835743366"
    ],
    [
      "72.474957105",
      "6.591293706"
    ],
    [
      "8.883564861",
      "506.174224918"
    ],
    [
      "281.641968219",
      "9.276957039"
    ],
    [
      "452.931626545",
      "504.685336853"
    ],
    [
      "503.744399484",
      "398.071547047"
    ],
    [
      "378.016308786",
      "12.854733321"
    ],
    [
      "501.610170123",
      "188.034242615"
    ],
    [
      "13.062346559",
      "409.301004410"
    ],
    [
      "499.744399484",
      "292.358169258"
    ],
    [
      "118.952585901",
      "464.264566384"
    ],
    [
      "166.077333344",
      "227.613742191"
    ],
    [
      "112.648726082",
      "496.458319239"
    ],
    [
      "294.267402978",
      "495.737073458"
    ],
    [
      "294.942737775",
      "379.550180312"
    ],
    [
      "335.568132770",
      "493.613150573"
    ],
    [
      "490.745665398",
      "22.998731916"
    ],
    [
      "22.098475031",
      "236.875904947"
    ],
    [
      "490.744399484",
      "70.243416533"
    ],
    [
      "24.108315260",
      "283.015522452"
    ],
    [
      "25.000000000",
      "103.240431042"
    ],
    [
      "151.661705048",
      "90.301849905"
    ],
    [
      "486.388176186",
      "430.748167326"
    ],
    [
      "485.744399484",
      "485.744399484"
    ],
    [
      "248.440251474",
      "29.000000000"
    ],
    [
      "204.159961729",
      "201.812319453"
    ],
    [
      "386.581893620",
      "112.059574505"
    ],
    [
      "324.575264607",
      "138.290752210"
    ],
    [
      "112.685189031",
      "33.000000000"
    ],
    [
      "244.855217952",
      "479.439854782"
    ],
    [
      "141.891409496",
      "339.959076715"
    ],
    [
      "181.619940790",
      "36.000000000"
    ],
    [
      "89.281254036",
      "99.185639605"
    ],
    [
      "126.914237897",
      "411.865977686"
    ],
    [
      "171.925910303",
      "474.744399484"
    ],
    [
      "40.021580532",
      "40.000000000"
    ],
    [
      "307.578306268",
      "438.229588659"
    ],
    [
      "355.412964146",
      "368.988637681"
    ],
    [
      "287.456986377",
      "317.929994088"
    ],
    [
      "383.196224927",
      "186.983117184"
    ],
    [
      "138.894438873",
      "164.709961070"
    ],
    [
      "426.143650612",
      "46.000000000"
    ],
    [
      "47.000000001",
      "171.796977046"
    ],
    [
      "372.615420019",
      "280.508791872"
    ],
    [
      "203.210839844",
      "280.962619359"
    ],
    [
      "463.375221090",
      "137.918582392"
    ],
    [
      "462.744399484",
      "238.916612394"
    ],
    [
      "52.000000000",
      "461.744399484"
    ],
    [
      "326.849434610",
      "53.000000000"
    ],
    [
      "54.000000000",
      "355.763269088"
    ],
    [
      "101.820024319",
      "257.813050741"
    ],
    [
      "288.438183843",
      "218.934856573"
    ],
    [
      "219.700300367",
      "391.476112279"
    ],
    [
      "405.146632762",
      "455.744399484"
    ],
    [
      "454.551499101",
      "349.687060360"
    ],
    [
      "233.545628284",
      "116.744801556"
    ]
  ],
  "side": "513.744399484"
}

Submit the square side length and the circle centers listed in order of radii 1, 2, …, n. Write each number as a decimal string such as "3.5". · Verifier v1.0.0

DISCUSSION

Discussion

Discuss strategies, share construction methods, or ask questions. Any signed-in user can post under their public byline and unique #UID. New posts appear after moderation.

No threads yet. Start the first discussion.