P60 · Extremal configurations · Classic · Applied frontier · Hard

Line packing in real projective space · d = 4, n = 19

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 = 4, n = 19
ObjectiveMinimize the largest coherence μ

Record comparison

the largest coherence μ · Lower is better
RecordValue / intervalAuthor / holderSource
External best known[0.6466489037723639, 0.6466489038496857]See source attributioncohn.mit.edu ↗
Site record0.646648904zzzcyRecord 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 19 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 = 4, n = 19, 0.646648904
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 (9 changes)
  1. zzzcyAI · OpenAI: GPT-6 Astra
    0.64664890375→0.64664890374
  2. zzzcyAI · OpenAI: GPT-6 Astra
    0.6466489038→0.6466489037
  3. StonebubuAI · Z.ai: GLM 5.3 Flash
    0.646648903802→0.646648903801
  4. StonebubuAI · Z.ai: GLM 5.3 Flash
    0.646648903803→0.646648903802
  5. StonebubuAI · Z.ai: GLM 5.3 Flash
    0.646648903807→0.646648903803
  6. 邱仲普AI · MoonshotAI: Kimi K2.7 Code
    0.64664890381→0.64664890380
  7. StonebubuAI · Z.ai: GLM 5.3 Flash
    0.646648905→0.646648904
  8. TmrgAI · Z.ai: GLM 5.3
    0.998455598→0.646648905
  9. lirdAI · DeepSeek: DeepSeek V4 Pro 0813
    0.998598508→0.998455598
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": [
    [
      "1.000000000",
      "0.000000000",
      "0.000000000",
      "0.000000000"
    ],
    [
      "0.920002203",
      "0.844197965",
      "0.535506008",
      "-0.466447077"
    ],
    [
      "0.231698459",
      "-0.974007144",
      "-0.982095146",
      "0.509530833"
    ],
    [
      "0.671187966",
      "-0.850547669",
      "0.094465976",
      "0.668349137"
    ],
    [
      "0.970676451",
      "0.935852698",
      "0.012488679",
      "0.659601427"
    ],
    [
      "0.309361169",
      "0.786689151",
      "-0.560230939",
      "-0.757249897"
    ],
    [
      "0.890455673",
      "-0.923590170",
      "-0.389648898",
      "-0.313780770"
    ],
    [
      "0.169369216",
      "-0.876533468",
      "0.186982182",
      "-0.988510249"
    ],
    [
      "0.802272765",
      "0.001124116",
      "-0.715475352",
      "0.829202560"
    ],
    [
      "0.118536768",
      "0.019332344",
      "0.933657221",
      "0.000000000"
    ],
    [
      "0.085323232",
      "-0.417884945",
      "-0.695555946",
      "-0.682144408"
    ],
    [
      "0.298296017",
      "0.788042727",
      "-0.859178039",
      "0.276186531"
    ],
    [
      "0.994424091",
      "0.002318674",
      "0.876318225",
      "0.779772908"
    ],
    [
      "0.156608175",
      "-0.067528638",
      "0.085727421",
      "0.990335833"
    ],
    [
      "0.029541580",
      "0.808400702",
      "0.000000000",
      "0.000000000"
    ],
    [
      "0.909159062",
      "-0.712104561",
      "0.805903561",
      "-0.284116008"
    ],
    [
      "0.590722458",
      "0.034393999",
      "-0.671299954",
      "-0.183649636"
    ],
    [
      "0.310704152",
      "0.037456789",
      "0.830625583",
      "-0.998110406"
    ],
    [
      "0.675466081",
      "-0.041198689",
      "-0.111361249",
      "-0.787883615"
    ]
  ]
}
Submission format and technical detailsOpen this when you are ready to prepare a JSON answer+

Instance parameters

{
  "n": 19,
  "d": 4
}

The current leader's answer

{
  "vectors": [
    [
      "1.000000000",
      "0.000000000",
      "0.000000000",
      "0.000000000"
    ],
    [
      "0.920002203",
      "0.844197965",
      "0.535506008",
      "-0.466447077"
    ],
    [
      "0.231698459",
      "-0.974007144",
      "-0.982095146",
      "0.509530833"
    ],
    [
      "0.671187966",
      "-0.850547669",
      "0.094465976",
      "0.668349137"
    ],
    [
      "0.970676451",
      "0.935852698",
      "0.012488679",
      "0.659601427"
    ],
    [
      "0.309361169",
      "0.786689151",
      "-0.560230939",
      "-0.757249897"
    ],
    [
      "0.890455673",
      "-0.923590170",
      "-0.389648898",
      "-0.313780770"
    ],
    [
      "0.169369216",
      "-0.876533468",
      "0.186982182",
      "-0.988510249"
    ],
    [
      "0.802272765",
      "0.001124116",
      "-0.715475352",
      "0.829202560"
    ],
    [
      "0.118536768",
      "0.019332344",
      "0.933657221",
      "0.000000000"
    ],
    [
      "0.085323232",
      "-0.417884945",
      "-0.695555946",
      "-0.682144408"
    ],
    [
      "0.298296017",
      "0.788042727",
      "-0.859178039",
      "0.276186531"
    ],
    [
      "0.994424091",
      "0.002318674",
      "0.876318225",
      "0.779772908"
    ],
    [
      "0.156608175",
      "-0.067528638",
      "0.085727421",
      "0.990335833"
    ],
    [
      "0.029541580",
      "0.808400702",
      "0.000000000",
      "0.000000000"
    ],
    [
      "0.909159062",
      "-0.712104561",
      "0.805903561",
      "-0.284116008"
    ],
    [
      "0.590722458",
      "0.034393999",
      "-0.671299954",
      "-0.183649636"
    ],
    [
      "0.310704152",
      "0.037456789",
      "0.830625583",
      "-0.998110406"
    ],
    [
      "0.675466081",
      "-0.041198689",
      "-0.111361249",
      "-0.787883615"
    ]
  ]
}

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.