P82 · Packing and covering · Classic · Hard

Equal circles in regular polygons · m = 6 · n = 54

Pack n equal circles into the regular m-gon with centre (1,1), circumradius 1, and first vertex (2,1) so as to maximise their common radius.

Instancem = 6 · n = 54
ObjectiveMaximize circle radius

Record comparison

circle radius · Higher is better
RecordValue / intervalAuthor / holderSource
External best known[0.111600904573, 0.111600904575]Eckard SpechtPackomania ↗
Site record0.111600904邱仲普Record details ↓

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

Formal definition

  • ContainerThe editor and certificate normalise the container to the exact regular m-gon with centre (1,1), circumradius 1, and first vertex (2,1), while public scores follow the literature convention. Boundary contact is allowed.
  • SubmissionSubmit {radius, placements:[{x,y,turn},…]}, with each value written as a decimal string of at most nine places. Here x, y are centre coordinates; circles require turn = 0 and polygons use turn = tan(θ/2). Coordinates and turn must lie in [−4, 4], with 0 < radius ≤ 4.
  • ConstraintsExactly n congruent pieces lie wholly inside the container with pairwise disjoint interiors. Polygons may rotate independently by arbitrary angles.
  • PrecisionInput decimals are parsed as exact rationals and regular-polygon vertices are defined algebraically, with zero floating-point tolerance in feasibility checks.
  • ObjectiveMaximise the circle radius r (with container circumradius fixed at 1).
Challenge this record ↗

Layout shown: site record

VERIFIED CONSTRUCTIONVERIFIED CONSTRUCTION

Getting a feel for it

Literature targets and coordinate certificates

Literature targets are converted at their published precision, while nine-decimal coordinate certificates are stored and displayed alongside the source values. Pentagon and hexagon rows n = 41–100 and octagon rows n = 41–48 cite Packomania's value and author without importing its coordinates; they start from an ordinary site grid baseline.

Source
The record-holding arrangement for Equal circles in regular polygons m = 6 · n = 54, 0.111600904
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)+

P82, m=6, n=54: refine the public hexagon packing below on the Q=10^9 integer grid. Target a radius increase of one grid unit per step and integer centre shifts in [-L,L]. Include all six hexagon walls. For each relevant pair with centre difference d, impose 2*d dot (u_i-u_j) >= 4*(r+1)^2-|d|^2, divided by 4*(r+1), plus a 0.0001 grid-unit margin. Pairs with normalised slack above 8L may be omitted from the search, never from validation. Use SciPy/HiGHS MILP with zero relative gap and a five-second limit. L=2,10,100 gives radii 0.111600902, 0.111600903, 0.111600904 from 0.111600901. Replay from this certificate reproduces the final coordinates. Further one-unit targets at L=2,10,100,1000,10000 found no improvement; this is not an optimality proof. All 324 wall constraints and 1431 pairs pass two checks: exact signs in Q(sqrt(3)) with integer distances, and conservative rational intervals enclosing the exact vertices to 90 decimals with rational distances. Neither uses a feasibility tolerance. This improves the Arena certificate, without claiming a new continuous optimum. Starting certificate: {"placements":[{"turn":"0","x":"0.602803560","y":"0.245575501"},{"turn":"0","x":"0.826005369","y":"0.245575501"},{"turn":"0","x":"1.049207178","y":"0.245575501"},{"turn":"0","x":"1.272408988","y":"0.245575501"},{"turn":"0","x":"1.481168608","y":"0.324559477"},{"turn":"0","x":"0.463668338","y":"0.420104689"},{"turn":"0","x":"0.714404465","y":"0.438873938"},{"turn":"0","x":"0.937606274","y":"0.438873938"},{"turn":"0","x":"1.160808083","y":"0.438873938"},{"turn":"0","x":"1.369567703","y":"0.517857914"},{"turn":"0","x":"1.592769512","y":"0.517857914"},{"turn":"0","x":"0.352067434","y":"0.613403126"},{"turn":"0","x":"0.575269243","y":"0.613403126"},{"turn":"0","x":"0.826005369","y":"0.632172375"},{"turn":"0","x":"1.049207178","y":"0.632172375"},{"turn":"0","x":"1.257966799","y":"0.711156351"},{"turn":"0","x":"1.481168608","y":"0.711156351"},{"turn":"0","x":"1.704370417","y":"0.711156351"},{"turn":"0","x":"0.240466529","y":"0.806701563"},{"turn":"0","x":"0.463668338","y":"0.806701563"},{"turn":"0","x":"0.686870147","y":"0.806701563"},{"turn":"0","x":"0.937606274","y":"0.825470811"},{"turn":"0","x":"1.146365894","y":"0.904454788"},{"turn":"0","x":"1.369567703","y":"0.904454788"},{"turn":"0","x":"1.592769512","y":"0.904454788"},{"turn":"0","x":"1.815971322","y":"0.904454788"},{"turn":"0","x":"0.128865625","y":"1.000000000"},{"turn":"0","x":"0.352067434","y":"1.000000000"},{"turn":"0","x":"0.697038596","y":"1.029671629"},{"turn":"0","x":"0.919491844","y":"1.047936348"},{"turn":"0","x":"1.128251464","y":"1.126920325"},{"turn":"0","x":"1.351453273","y":"1.126920325"},{"turn":"0","x":"1.574655083","y":"1.126920325"},{"turn":"0","x":"1.797856892","y":"1.126920325"},{"turn":"0","x":"0.512480081","y":"1.155199324"},{"turn":"0","x":"0.240466529","y":"1.193298437"},{"turn":"0","x":"0.830587470","y":"1.252668026"},{"turn":"0","x":"1.239852369","y":"1.320218762"},{"turn":"0","x":"1.463054178","y":"1.320218762"},{"turn":"0","x":"1.686255987","y":"1.320218762"},{"turn":"0","x":"0.627937122","y":"1.346219531"},{"turn":"0","x":"0.400879176","y":"1.348497761"},{"turn":"0","x":"1.021787141","y":"1.367827625"},{"turn":"0","x":"1.351453273","y":"1.513517199"},{"turn":"0","x":"1.574655083","y":"1.513517199"},{"turn":"0","x":"0.909082705","y":"1.560493028"},{"turn":"0","x":"1.133388045","y":"1.561126062"},{"turn":"0","x":"0.685875888","y":"1.561770330"},{"turn":"0","x":"0.455079410","y":"1.565018851"},{"turn":"0","x":"1.463054178","y":"1.706815635"},{"turn":"0","x":"0.573166445","y":"1.754424499"},{"turn":"0","x":"0.798585332","y":"1.754424499"},{"turn":"0","x":"1.021787141","y":"1.754424499"},{"turn":"0","x":"1.244988950","y":"1.754424499"}],"radius":"0.111600901"}

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

How to write your answer

the regular m-gon with centre (1,1), circumradius 1, and first vertex (2,1)

Submit {radius, placements:[{x,y,turn},…]}, with each value written as a decimal string of at most nine places. Here x, y are centre coordinates; circles require turn = 0 and polygons use turn = tan(θ/2). Coordinates and turn must lie in [−4, 4], with 0 < radius ≤ 4.

The current leader's answer

{
  "placements": [
    {
      "turn": "0",
      "x": "0.602803566",
      "y": "0.245575501"
    },
    {
      "turn": "0",
      "x": "0.826005379",
      "y": "0.245575501"
    },
    {
      "turn": "0",
      "x": "1.049207191",
      "y": "0.245575501"
    },
    {
      "turn": "0",
      "x": "1.272409002",
      "y": "0.245575501"
    },
    {
      "turn": "0",
      "x": "1.481168616",
      "y": "0.324559493"
    },
    {
      "turn": "0",
      "x": "0.463668341",
      "y": "0.420104687"
    },
    {
      "turn": "0",
      "x": "0.714404472",
      "y": "0.438873936"
    },
    {
      "turn": "0",
      "x": "0.937606286",
      "y": "0.438873937"
    },
    {
      "turn": "0",
      "x": "1.160808096",
      "y": "0.438873937"
    },
    {
      "turn": "0",
      "x": "1.369567710",
      "y": "0.517857930"
    },
    {
      "turn": "0",
      "x": "1.592769521",
      "y": "0.517857931"
    },
    {
      "turn": "0",
      "x": "0.352067437",
      "y": "0.613403123"
    },
    {
      "turn": "0",
      "x": "0.575269249",
      "y": "0.613403124"
    },
    {
      "turn": "0",
      "x": "0.826005378",
      "y": "0.632172372"
    },
    {
      "turn": "0",
      "x": "1.049207191",
      "y": "0.632172374"
    },
    {
      "turn": "0",
      "x": "1.257966804",
      "y": "0.711156368"
    },
    {
      "turn": "0",
      "x": "1.481168615",
      "y": "0.711156368"
    },
    {
      "turn": "0",
      "x": "1.704370426",
      "y": "0.711156369"
    },
    {
      "turn": "0",
      "x": "0.240466531",
      "y": "0.806701559"
    },
    {
      "turn": "0",
      "x": "0.463668344",
      "y": "0.806701562"
    },
    {
      "turn": "0",
      "x": "0.686870156",
      "y": "0.806701559"
    },
    {
      "turn": "0",
      "x": "0.937606283",
      "y": "0.825470809"
    },
    {
      "turn": "0",
      "x": "1.146365896",
      "y": "0.904454805"
    },
    {
      "turn": "0",
      "x": "1.369567709",
      "y": "0.904454805"
    },
    {
      "turn": "0",
      "x": "1.592769520",
      "y": "0.904454807"
    },
    {
      "turn": "0",
      "x": "1.815971331",
      "y": "0.904454806"
    },
    {
      "turn": "0",
      "x": "0.128865625",
      "y": "0.999999999"
    },
    {
      "turn": "0",
      "x": "0.352067434",
      "y": "0.999999996"
    },
    {
      "turn": "0",
      "x": "0.697038594",
      "y": "1.029671625"
    },
    {
      "turn": "0",
      "x": "0.919491842",
      "y": "1.047936344"
    },
    {
      "turn": "0",
      "x": "1.128251453",
      "y": "1.126920344"
    },
    {
      "turn": "0",
      "x": "1.351453263",
      "y": "1.126920341"
    },
    {
      "turn": "0",
      "x": "1.574655072",
      "y": "1.126920342"
    },
    {
      "turn": "0",
      "x": "1.797856882",
      "y": "1.126920341"
    },
    {
      "turn": "0",
      "x": "0.512480080",
      "y": "1.155199320"
    },
    {
      "turn": "0",
      "x": "0.240466530",
      "y": "1.193298435"
    },
    {
      "turn": "0",
      "x": "0.830587458",
      "y": "1.252668017"
    },
    {
      "turn": "0",
      "x": "1.239852356",
      "y": "1.320218781"
    },
    {
      "turn": "0",
      "x": "1.463054167",
      "y": "1.320218778"
    },
    {
      "turn": "0",
      "x": "1.686255978",
      "y": "1.320218778"
    },
    {
      "turn": "0",
      "x": "0.627937114",
      "y": "1.346219530"
    },
    {
      "turn": "0",
      "x": "0.400879175",
      "y": "1.348497760"
    },
    {
      "turn": "0",
      "x": "1.021787123",
      "y": "1.367827626"
    },
    {
      "turn": "0",
      "x": "1.351453263",
      "y": "1.513517216"
    },
    {
      "turn": "0",
      "x": "1.574655073",
      "y": "1.513517215"
    },
    {
      "turn": "0",
      "x": "0.909082793",
      "y": "1.560492916"
    },
    {
      "turn": "0",
      "x": "1.133388031",
      "y": "1.561126061"
    },
    {
      "turn": "0",
      "x": "0.685875880",
      "y": "1.561770328"
    },
    {
      "turn": "0",
      "x": "0.455079411",
      "y": "1.565018848"
    },
    {
      "turn": "0",
      "x": "1.463054169",
      "y": "1.706815652"
    },
    {
      "turn": "0",
      "x": "0.573166441",
      "y": "1.754424499"
    },
    {
      "turn": "0",
      "x": "0.798585319",
      "y": "1.754424499"
    },
    {
      "turn": "0",
      "x": "1.021787128",
      "y": "1.754424499"
    },
    {
      "turn": "0",
      "x": "1.244988938",
      "y": "1.754424499"
    }
  ],
  "radius": "0.111600904"
}
Submission format and technical detailsOpen this when you are ready to prepare a JSON answer+

Instance parameters

{
  "n": 54,
  "sides": 6
}

The current leader's answer

{
  "placements": [
    {
      "turn": "0",
      "x": "0.602803566",
      "y": "0.245575501"
    },
    {
      "turn": "0",
      "x": "0.826005379",
      "y": "0.245575501"
    },
    {
      "turn": "0",
      "x": "1.049207191",
      "y": "0.245575501"
    },
    {
      "turn": "0",
      "x": "1.272409002",
      "y": "0.245575501"
    },
    {
      "turn": "0",
      "x": "1.481168616",
      "y": "0.324559493"
    },
    {
      "turn": "0",
      "x": "0.463668341",
      "y": "0.420104687"
    },
    {
      "turn": "0",
      "x": "0.714404472",
      "y": "0.438873936"
    },
    {
      "turn": "0",
      "x": "0.937606286",
      "y": "0.438873937"
    },
    {
      "turn": "0",
      "x": "1.160808096",
      "y": "0.438873937"
    },
    {
      "turn": "0",
      "x": "1.369567710",
      "y": "0.517857930"
    },
    {
      "turn": "0",
      "x": "1.592769521",
      "y": "0.517857931"
    },
    {
      "turn": "0",
      "x": "0.352067437",
      "y": "0.613403123"
    },
    {
      "turn": "0",
      "x": "0.575269249",
      "y": "0.613403124"
    },
    {
      "turn": "0",
      "x": "0.826005378",
      "y": "0.632172372"
    },
    {
      "turn": "0",
      "x": "1.049207191",
      "y": "0.632172374"
    },
    {
      "turn": "0",
      "x": "1.257966804",
      "y": "0.711156368"
    },
    {
      "turn": "0",
      "x": "1.481168615",
      "y": "0.711156368"
    },
    {
      "turn": "0",
      "x": "1.704370426",
      "y": "0.711156369"
    },
    {
      "turn": "0",
      "x": "0.240466531",
      "y": "0.806701559"
    },
    {
      "turn": "0",
      "x": "0.463668344",
      "y": "0.806701562"
    },
    {
      "turn": "0",
      "x": "0.686870156",
      "y": "0.806701559"
    },
    {
      "turn": "0",
      "x": "0.937606283",
      "y": "0.825470809"
    },
    {
      "turn": "0",
      "x": "1.146365896",
      "y": "0.904454805"
    },
    {
      "turn": "0",
      "x": "1.369567709",
      "y": "0.904454805"
    },
    {
      "turn": "0",
      "x": "1.592769520",
      "y": "0.904454807"
    },
    {
      "turn": "0",
      "x": "1.815971331",
      "y": "0.904454806"
    },
    {
      "turn": "0",
      "x": "0.128865625",
      "y": "0.999999999"
    },
    {
      "turn": "0",
      "x": "0.352067434",
      "y": "0.999999996"
    },
    {
      "turn": "0",
      "x": "0.697038594",
      "y": "1.029671625"
    },
    {
      "turn": "0",
      "x": "0.919491842",
      "y": "1.047936344"
    },
    {
      "turn": "0",
      "x": "1.128251453",
      "y": "1.126920344"
    },
    {
      "turn": "0",
      "x": "1.351453263",
      "y": "1.126920341"
    },
    {
      "turn": "0",
      "x": "1.574655072",
      "y": "1.126920342"
    },
    {
      "turn": "0",
      "x": "1.797856882",
      "y": "1.126920341"
    },
    {
      "turn": "0",
      "x": "0.512480080",
      "y": "1.155199320"
    },
    {
      "turn": "0",
      "x": "0.240466530",
      "y": "1.193298435"
    },
    {
      "turn": "0",
      "x": "0.830587458",
      "y": "1.252668017"
    },
    {
      "turn": "0",
      "x": "1.239852356",
      "y": "1.320218781"
    },
    {
      "turn": "0",
      "x": "1.463054167",
      "y": "1.320218778"
    },
    {
      "turn": "0",
      "x": "1.686255978",
      "y": "1.320218778"
    },
    {
      "turn": "0",
      "x": "0.627937114",
      "y": "1.346219530"
    },
    {
      "turn": "0",
      "x": "0.400879175",
      "y": "1.348497760"
    },
    {
      "turn": "0",
      "x": "1.021787123",
      "y": "1.367827626"
    },
    {
      "turn": "0",
      "x": "1.351453263",
      "y": "1.513517216"
    },
    {
      "turn": "0",
      "x": "1.574655073",
      "y": "1.513517215"
    },
    {
      "turn": "0",
      "x": "0.909082793",
      "y": "1.560492916"
    },
    {
      "turn": "0",
      "x": "1.133388031",
      "y": "1.561126061"
    },
    {
      "turn": "0",
      "x": "0.685875880",
      "y": "1.561770328"
    },
    {
      "turn": "0",
      "x": "0.455079411",
      "y": "1.565018848"
    },
    {
      "turn": "0",
      "x": "1.463054169",
      "y": "1.706815652"
    },
    {
      "turn": "0",
      "x": "0.573166441",
      "y": "1.754424499"
    },
    {
      "turn": "0",
      "x": "0.798585319",
      "y": "1.754424499"
    },
    {
      "turn": "0",
      "x": "1.021787128",
      "y": "1.754424499"
    },
    {
      "turn": "0",
      "x": "1.244988938",
      "y": "1.754424499"
    }
  ],
  "radius": "0.111600904"
}

Submit {radius, placements:[{x,y,turn},…]}, with each value written as a decimal string of at most nine places. Here x, y are centre coordinates; circles require turn = 0 and polygons use turn = tan(θ/2). Coordinates and turn must lie in [−4, 4], with 0 < radius ≤ 4. · 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.