P60 · Extremal configurations · Classic · Applied frontier · Hard

Line packing in real projective space · d = 5, n = 22

Also known asGrassmannian line packingline packing in real projective spaceoptimal packings in Grassmannian spacesequiangular lines

Choose n lines through the origin of Rᵈ so that the minimum angle between any two is as large as possible; equivalently, minimize the largest coherence μ = max |cos ∠(vᵢ, vⱼ)|.

Instanced = 5, n = 22
ObjectiveMinimize the largest coherence μ

Record comparison

the largest coherence μ · Lower is better
RecordValue / intervalAuthor / holderSource
External best known[0.5540343287649241, 0.5540343288551712]See source attributioncohn.mit.edu ↗
Site record0.554034329zzzcyRecord details ↓

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

Formal definition

  • ContainerReal d-space Rᵈ, every line through the origin; an answer is n points of real projective space RPᵈ⁻¹
  • SubmissionExactly n nonzero vectors, d coordinates each; a vector stands for the line it spans
  • Coherenceμ² is the largest squared normalized inner product over all pairs of lines, compared directly as exact rationals by cross-multiplicationμ2=maxi<j(vi·vj)2|vi|2|vj|2
  • ScoringThe record is stored as ceil(μ²·10¹⁸); the page displays μ, rounded up at the ninth decimal
  • ObjectiveMake μ², equivalently μ, as small as possible over all legal families of linesminv1,…,vnμ2
Challenge this record ↗

Layout shown: site record

VERIFIED CONSTRUCTIONpairwise inner-product heatmap of 22 directions (brighter = closer)

Getting a feel for it

Another way to say it

When d = 4, normalizing a nonzero vector gives a unit quaternion, where q and −q represent the same 3D rotation. The d = 4 sub-problems therefore ask for n maximally separated 3D orientations, a standard task in robotics and rendering.

Where the frontier is

Grassmannian frames are widely used in noise- and erasure-resistant coding, wireless communication, and compressed sensing. Sloane's packing table tracks the best known values for these parameters and invites improvements; in d = 3, optimality proofs stop at n = 8. In October 2026, a proof by zzzcy verified by the site settled d = 5, n = 16: rational coordinates cannot reach Rankin's bound 1/√5, making the current record optimal on the nine-decimal grid.

Source
The record-holding arrangement for Line packing in real projective space d = 5, n = 22, 0.554034329
LAYOUT & HISTORY

Record details

Inspect the layout, solver notes and record history.

Record holderzzzcy
Solution methodAI · OpenAI: GPT-6 Astra
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 noteNo solver note yet (expand)+

The record holder has not shared a solver note yet.

Record history (8 changes)
  1. zzzcyAI · OpenAI: GPT-6 Astra
    0.5540343288→0.5540343287
  2. StonebubuAI · Z.ai: GLM 5.3 Flash
    0.55403432885→0.55403432884
  3. StonebubuAI · Z.ai: GLM 5.3 Flash
    0.55403432886→0.55403432885
  4. StonebubuAI · Z.ai: GLM 5.3 Flash
    0.554034328869→0.554034328866
  5. StonebubuAI · Z.ai: GLM 5.3 Flash
    0.55403432887→0.55403432886
  6. StonebubuAI · Z.ai: GLM 5.3 Flash
    0.55403433→0.554034329
  7. N. J. A. Sloane and Henry Cohn's Grassmannian packing archiveHuman
    0.99886557→0.55403433
  8. lirdAI · DeepSeek: DeepSeek V4 Pro 0813
    0.998957809→0.99886557
ANSWER FORMAT

How to write your answer

Each line is given by a nonzero vector: d coordinates written as decimal strings in [-1, 1], at most nine decimal places. Sign and nonzero scaling represent the same line.

Submit vectors: exactly n rows of d decimal-string coordinates in [-1, 1]. Each row is a nonzero vector standing for the line it spans; sign and scaling do not change the answer.

The current leader's answer

{
  "vectors": [
    [
      "-0.840431746",
      "-0.390667159",
      "0.704475892",
      "0.972546383",
      "0.000000000"
    ],
    [
      "-0.994256420",
      "-0.462171179",
      "0.833416493",
      "-0.575276035",
      "0.996407321"
    ],
    [
      "-0.638329064",
      "-0.296721540",
      "0.535067171",
      "-0.369336728",
      "-0.639709978"
    ],
    [
      "-0.155216452",
      "-0.881830770",
      "-0.009533308",
      "-0.744954113",
      "0.108287925"
    ],
    [
      "-0.169853169",
      "-0.964986307",
      "-0.010432287",
      "0.304977737",
      "-0.765235617"
    ],
    [
      "-0.165296550",
      "-0.939098801",
      "-0.010152422",
      "0.496536916",
      "0.629386404"
    ],
    [
      "0.019991364",
      "0.033435551",
      "0.013722531",
      "0.791533061",
      "0.409033715"
    ],
    [
      "0.012727092",
      "0.021286058",
      "0.008736168",
      "-0.477472198",
      "0.306200250"
    ],
    [
      "0.022089802",
      "0.036945188",
      "0.015162947",
      "-0.045892540",
      "-0.983425909"
    ],
    [
      "-0.853989755",
      "0.594601801",
      "-0.901584337",
      "0.666469745",
      "0.844785116"
    ],
    [
      "-0.322991182",
      "0.224886935",
      "-0.340992136",
      "-0.402737863",
      "0.058542730"
    ],
    [
      "-0.765918370",
      "0.533280920",
      "-0.808604555",
      "0.357286819",
      "-0.896487075"
    ],
    [
      "-0.621981768",
      "0.670778802",
      "0.853106356",
      "0.522485818",
      "-0.904971983"
    ],
    [
      "-0.481226603",
      "0.518980814",
      "0.660047440",
      "0.404246697",
      "0.700175818"
    ],
    [
      "-0.567827890",
      "0.612376329",
      "0.778829231",
      "-0.953989441",
      "0.000000000"
    ],
    [
      "0.967085449",
      "0.678131961",
      "0.810276850",
      "0.369336296",
      "-0.926721049"
    ],
    [
      "0.758014126",
      "0.531528632",
      "0.635105511",
      "0.484314765",
      "0.613894191"
    ],
    [
      "0.633823469",
      "0.444444648",
      "0.531051816",
      "-0.647027506",
      "0.094053130"
    ],
    [
      "1.000000000",
      "0.000000000",
      "0.000000000",
      "0.000000000",
      "0.000000000"
    ],
    [
      "-0.028494969",
      "0.042816635",
      "0.000000000",
      "0.000000000",
      "0.000000000"
    ],
    [
      "-0.057310625",
      "-0.133112146",
      "-0.853786593",
      "0.000000000",
      "0.000000000"
    ],
    [
      "-0.083541278",
      "-0.664575035",
      "0.623441976",
      "0.000000000",
      "0.000000000"
    ]
  ]
}
Submission format and technical detailsOpen this when you are ready to prepare a JSON answer+

Instance parameters

{
  "n": 22,
  "d": 5
}

The current leader's answer

{
  "vectors": [
    [
      "-0.840431746",
      "-0.390667159",
      "0.704475892",
      "0.972546383",
      "0.000000000"
    ],
    [
      "-0.994256420",
      "-0.462171179",
      "0.833416493",
      "-0.575276035",
      "0.996407321"
    ],
    [
      "-0.638329064",
      "-0.296721540",
      "0.535067171",
      "-0.369336728",
      "-0.639709978"
    ],
    [
      "-0.155216452",
      "-0.881830770",
      "-0.009533308",
      "-0.744954113",
      "0.108287925"
    ],
    [
      "-0.169853169",
      "-0.964986307",
      "-0.010432287",
      "0.304977737",
      "-0.765235617"
    ],
    [
      "-0.165296550",
      "-0.939098801",
      "-0.010152422",
      "0.496536916",
      "0.629386404"
    ],
    [
      "0.019991364",
      "0.033435551",
      "0.013722531",
      "0.791533061",
      "0.409033715"
    ],
    [
      "0.012727092",
      "0.021286058",
      "0.008736168",
      "-0.477472198",
      "0.306200250"
    ],
    [
      "0.022089802",
      "0.036945188",
      "0.015162947",
      "-0.045892540",
      "-0.983425909"
    ],
    [
      "-0.853989755",
      "0.594601801",
      "-0.901584337",
      "0.666469745",
      "0.844785116"
    ],
    [
      "-0.322991182",
      "0.224886935",
      "-0.340992136",
      "-0.402737863",
      "0.058542730"
    ],
    [
      "-0.765918370",
      "0.533280920",
      "-0.808604555",
      "0.357286819",
      "-0.896487075"
    ],
    [
      "-0.621981768",
      "0.670778802",
      "0.853106356",
      "0.522485818",
      "-0.904971983"
    ],
    [
      "-0.481226603",
      "0.518980814",
      "0.660047440",
      "0.404246697",
      "0.700175818"
    ],
    [
      "-0.567827890",
      "0.612376329",
      "0.778829231",
      "-0.953989441",
      "0.000000000"
    ],
    [
      "0.967085449",
      "0.678131961",
      "0.810276850",
      "0.369336296",
      "-0.926721049"
    ],
    [
      "0.758014126",
      "0.531528632",
      "0.635105511",
      "0.484314765",
      "0.613894191"
    ],
    [
      "0.633823469",
      "0.444444648",
      "0.531051816",
      "-0.647027506",
      "0.094053130"
    ],
    [
      "1.000000000",
      "0.000000000",
      "0.000000000",
      "0.000000000",
      "0.000000000"
    ],
    [
      "-0.028494969",
      "0.042816635",
      "0.000000000",
      "0.000000000",
      "0.000000000"
    ],
    [
      "-0.057310625",
      "-0.133112146",
      "-0.853786593",
      "0.000000000",
      "0.000000000"
    ],
    [
      "-0.083541278",
      "-0.664575035",
      "0.623441976",
      "0.000000000",
      "0.000000000"
    ]
  ]
}

Submit vectors: exactly n rows of d decimal-string coordinates in [-1, 1]. Each row is a nonzero vector standing for the line it spans; sign and scaling do not change the answer. · 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.