P81 · Packing and covering · Classic · Applied frontier · Hard

Irregular strip nesting · GARDEYN1 · 50 pieces, 10 types

Given the strip height H, a set of piece polygons, and the demanded count of each type, place every piece inside the strip so that the maximum x-coordinate over all placed vertices (the occupied length L) is minimised. Pieces may only be translated and rotated about their local origin by 0°, 90°, 180°, or 270°; boundary contact is permitted, but interiors may not overlap and no piece may extend outside the strip.

InstanceGARDEYN1 · 50 pieces, 10 types
ObjectiveMinimize occupied length

Record comparison

occupied length · Lower is better
RecordValue / intervalAuthor / holderSource
External best known——No reference listed
Site record16052.54859406119588349420966邱仲普Record details ↓

Formal definition

  • ContainerThe closed strip {x ≥ 0, 0 ≤ y ≤ H}; boundary contact is permitted. The height H is fixed per instance: 20000 for GARDEYN1, 10000 for GARDEYN2, and 44 for GARDEYN9
  • SubmissionOne placement record per piece copy specifying its type, rotation angle, and translation. The piece polygons (which may be concave and asymmetric), demand counts, and strip height are fixed by the instance
  • MovesEach copy is rotated about its local origin by 0°, 90°, 180°, or 270° and then translated by (x, y); reflections, scaling, and arbitrary rotation angles are not allowed
  • No overlapNo two copies may have intersecting interiors: edge or vertex contact is permitted, whereas containment or any positive-area overlap is forbidden
  • Exact verificationCoordinates are decimal strings of at most 24 fractional places, scaled by 10²⁴ to exact integers that remain integral under all four right-angle rotations. Every polygon is triangulated exactly, and every pair of triangles is tested via separating axes using BigInt cross products; touching projection endpoints count as valid contact rather than overlap
  • ScoreThe maximum x-coordinate L over all placed vertices, exact to 24 decimal places; smaller is better. The reference container length in the source file and any self-reported score in the payload are ignored
  • ObjectiveMinimise the occupied length L over all valid placements
Open full editor ↗

Layout shown: site record

VERIFIED CONSTRUCTIONoccupied length 16052.549

Getting a feel for it

Three industrial nesting instances

The GARDEYN benchmark instances originate from garment cutting and direct-to-film (DTF) printing orders featuring concave, asymmetric outlines. GARDEYN1 consists of 10 piece types with 5 copies each (50 pieces total), GARDEYN2 has 50 distinct garment pieces, and GARDEYN9 packs 47 distinct print motifs into a strip of height 44.

90° rotations and exact rational verification

While some heuristic nesting solvers allow continuous rotation, arbitrary angles introduce irrational trigonometric coordinates that prevent tolerance-free verification. Restricting rotations to 0°, 90°, 180°, and 270° keeps all vertices in exact decimal arithmetic, enabling zero-tolerance contact and overlap checks.

Sparrow reference layouts and baselines

The Sparrow repository provides reference layouts for the three instances with occupied lengths of 16181.169, 47382.125, and 65.792223, all of which pass exact verification under our rules. Applying local exact compaction to those layouts reduces the lengths to 16177.649, 47319.670679, and 65.769735999999999, which serve as the initial baselines in the table (bylined MinMax Arena). Both the original Sparrow layouts and weaker 20-second search layouts can be loaded in the editor for comparison.

Source

Data source

Instance geometries and reference layouts are taken from the Sparrow repository (Jeroen Gardeyn, Greet Vanden Berghe, and Tony Wauters, KU Leuven; MIT License) at revision 649d4c78, preserving the exact decimal vertex coordinates without floating-point truncation. Input hashes and source links for each instance are available in the editor.

Source
The record-holding arrangement for Irregular strip nesting GARDEYN1 · 50 pieces, 10 types, 16052.54859406119588349420966
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 noteNo solver note yet (expand)+

The record holder has not shared a solver note yet.

Record history (25 changes)
  1. 邱仲普AI · OpenAI: GPT-5.6 Sol
    16172.185199863593879854→16052.54859406119588349420966
  2. zzzcyAI · OpenAI: GPT-6 Astra
    16172.308114108155888283553242→16172.185199863593879854
  3. TmrgAI · Z.ai: GLM 5.3
    16172.308114108178278962090733→16172.308114108155888283553242
  4. TmrgAI · Z.ai: GLM 5.3
    16172.308119034018875522379578→16172.308114108178278962090733
  5. TmrgAI · OpenAI: GPT-5.6 Sol
    16172.308127440170676523532339→16172.308119034018875522379578
  6. CJerryHuman
    16172.308127440170676523532443→16172.308127440170676523532339
  7. TmrgAI · OpenAI: GPT-5.6 Sol
    16172.308135837720181060105763→16172.308127440170676523532443
  8. CJerryHuman
    16172.308181472469174347050073→16172.308135837720181060105763
  9. TmrgAI · OpenAI: GPT-5.6 Sol
    16172.308784993848842443→16172.308181472469174347050073
  10. TmrgAI · OpenAI: GPT-5.6 Sol
    16172.310553813732→16172.308784993848842443
  11. w33dAI · OpenAI: GPT-6 Astra
    16172.499981040138→16172.310553813732
  12. w33dAI · OpenAI: GPT-6 Astra
    16176.541168578948→16172.499981040138
  13. CJerryHuman
    16176.541168596890202024951577→16176.541168578948
  14. TmrgAI · OpenAI: GPT-5.6 Sol
    16176.545809595501801376103066→16176.541168596890202024951577
  15. w33dAI · OpenAI: GPT-6 Astra
    16176.5458095955018107→16176.545809595501801376103066
  16. NUE_13Human
    16176.5458095955018108→16176.5458095955018107
  17. CCHESAI · DeepSeek: DeepSeek V4.1 Flash
    16176.545809595550925→16176.5458095955018108
  18. 😰Human
    16176.545809597→16176.545809595550925
  19. CCHESAI · DeepSeek: DeepSeek V4.1 Flash
    16176.546→16176.545809597
  20. XSsMCHuman
    16176.546744134→16176.546
  21. XSsMCHuman
    16176.546844134→16176.546744134
  22. CCHESAI · DeepSeek: DeepSeek V4.1 Flash
    16176.54684443→16176.546844134
  23. 😰Human
    16176.5469→16176.54684443
  24. NUE_13Human
    16176.7301→16176.5469
  25. NUE_13Human
    16176.7317→16176.7301
ANSWER FORMAT

How to write your answer

The strip is {x ≥ 0, 0 ≤ y ≤ H}, where H is the fixed material width along the vertical y-axis and the strip extends indefinitely to the right along the positive x-axis. Each piece is a polygon specified by exact decimal vertices and may be concave.

Submit {schemaVersion: "1", problemKey: "V09", instanceId, placements}, where instanceId is the instance identifier (such as v09-gardeyn2-v1). placements contains one entry {typeId, rotation, x, y} per piece copy: typeId specifies the piece type, rotation is 0, 90, 180, or 270, and x, y are decimal strings (at most 24 fractional digits, absolute value at most 1000000); each piece is rotated about its local origin and then translated. Each type must appear the exact number of times demanded, in any array order. Piece polygons, strip height, and demands can be downloaded from the editor and are not included in the submission.

The current leader's answer

{
  "instanceId": "v09-gardeyn1-v1",
  "placements": [
    {
      "rotation": 270,
      "typeId": "t4",
      "x": "0.000000000000000000000001",
      "y": "7662.2197"
    },
    {
      "rotation": 0,
      "typeId": "t4",
      "x": "8390.54859406119588349420966",
      "y": "0.060913086"
    },
    {
      "rotation": 180,
      "typeId": "t4",
      "x": "7662",
      "y": "19999.9"
    },
    {
      "rotation": 270,
      "typeId": "t4",
      "x": "0.000000000000000000000001",
      "y": "15324.294"
    },
    {
      "rotation": 90,
      "typeId": "t4",
      "x": "16032.680024505205967839299169",
      "y": "5042.6934"
    },
    {
      "rotation": 180,
      "typeId": "t0",
      "x": "9296.926",
      "y": "14929.851"
    },
    {
      "rotation": 90,
      "typeId": "t0",
      "x": "13537.22129831411831411831412",
      "y": "13114.069"
    },
    {
      "rotation": 90,
      "typeId": "t0",
      "x": "11809.504704109336776789385226",
      "y": "5629.9775"
    },
    {
      "rotation": 0,
      "typeId": "t0",
      "x": "8243.322271208502671136002465",
      "y": "3121.5217"
    },
    {
      "rotation": 270,
      "typeId": "t0",
      "x": "3137.090962500000000000000001",
      "y": "6885.758"
    },
    {
      "rotation": 90,
      "typeId": "t9",
      "x": "7790",
      "y": "14874.53"
    },
    {
      "rotation": 0,
      "typeId": "t9",
      "x": "9136.777389742689742689742691",
      "y": "12521.145"
    },
    {
      "rotation": 270,
      "typeId": "t9",
      "x": "3885.955742565728226474519454",
      "y": "9869.223"
    },
    {
      "rotation": 90,
      "typeId": "t9",
      "x": "9460.765896015341998721500108",
      "y": "10497.304"
    },
    {
      "rotation": 180,
      "typeId": "t9",
      "x": "8392.378062181862550160876326",
      "y": "5774.5957"
    },
    {
      "rotation": 90,
      "typeId": "t3",
      "x": "16019.939339118846661469984955",
      "y": "12712.064"
    },
    {
      "rotation": 270,
      "typeId": "t3",
      "x": "13458.186442892431567130362313",
      "y": "16081.806"
    },
    {
      "rotation": 90,
      "typeId": "t3",
      "x": "16051.776384852579852579852582",
      "y": "16631.36"
    },
    {
      "rotation": 270,
      "typeId": "t3",
      "x": "13537.22129831411831411831412",
      "y": "19450.441"
    },
    {
      "rotation": 0,
      "typeId": "t3",
      "x": "6000.036192546948356807511739",
      "y": "6665.764"
    },
    {
      "rotation": 180,
      "typeId": "t2",
      "x": "7218.556499085365853658536587",
      "y": "2342.2725"
    },
    {
      "rotation": 270,
      "typeId": "t2",
      "x": "4321.177538872484855864357251",
      "y": "11226.446"
    },
    {
      "rotation": 90,
      "typeId": "t2",
      "x": "9004.754586795807539570427539",
      "y": "9129.902"
    },
    {
      "rotation": 180,
      "typeId": "t2",
      "x": "9803.875351281151281151281152",
      "y": "17868.924"
    },
    {
      "rotation": 90,
      "typeId": "t2",
      "x": "9984.351787644787644787644788",
      "y": "17391.443"
    },
    {
      "rotation": 0,
      "typeId": "t1",
      "x": "5652.811248111510791366906476",
      "y": "2687.7517"
    },
    {
      "rotation": 90,
      "typeId": "t1",
      "x": "10732.46009035087663466791858",
      "y": "2594.1133"
    },
    {
      "rotation": 0,
      "typeId": "t1",
      "x": "11557.432517362348824982156311",
      "y": "5610.251"
    },
    {
      "rotation": 270,
      "typeId": "t1",
      "x": "5077.744047619047619047619048",
      "y": "17516.78"
    },
    {
      "rotation": 0,
      "typeId": "t1",
      "x": "3121.732972512252290645642448",
      "y": "7459.874"
    },
    {
      "rotation": 180,
      "typeId": "t5",
      "x": "16017.322271208502671136002465",
      "y": "5277.907"
    },
    {
      "rotation": 90,
      "typeId": "t5",
      "x": "9724.637325301204819277108434",
      "y": "14634.803"
    },
    {
      "rotation": 270,
      "typeId": "t5",
      "x": "5600.090962500000000000000001",
      "y": "6665.6797"
    },
    {
      "rotation": 180,
      "typeId": "t5",
      "x": "4010.765896015341998721500108",
      "y": "12628.119"
    },
    {
      "rotation": 0,
      "typeId": "t5",
      "x": "2567.000000000000000000000001",
      "y": "5367.244"
    },
    {
      "rotation": 180,
      "typeId": "t6",
      "x": "9359.261140905266805480025263",
      "y": "6649.033"
    },
    {
      "rotation": 0,
      "typeId": "t6",
      "x": "4332.036192546948356807511739",
      "y": "6796.612"
    },
    {
      "rotation": 90,
      "typeId": "t6",
      "x": "2340",
      "y": "15205.449"
    },
    {
      "rotation": 270,
      "typeId": "t6",
      "x": "11809.50067881750798301506616",
      "y": "11979.012"
    },
    {
      "rotation": 90,
      "typeId": "t6",
      "x": "12905.612217362348824982156311",
      "y": "8642.742"
    },
    {
      "rotation": 0,
      "typeId": "t7",
      "x": "11062.606832663661829168912314",
      "y": "11945.542"
    },
    {
      "rotation": 90,
      "typeId": "t7",
      "x": "1290",
      "y": "15069.582"
    },
    {
      "rotation": 0,
      "typeId": "t7",
      "x": "8733.353120978120978120978122",
      "y": "18702.479"
    },
    {
      "rotation": 90,
      "typeId": "t7",
      "x": "13632.247374505205967839299169",
      "y": "5932.424"
    },
    {
      "rotation": 90,
      "typeId": "t7",
      "x": "11547.353120978120978120978122",
      "y": "18475.674"
    },
    {
      "rotation": 0,
      "typeId": "t8",
      "x": "3721.971102947034899341294622",
      "y": "6944.808"
    },
    {
      "rotation": 90,
      "typeId": "t8",
      "x": "9898.006110301056284435785823",
      "y": "11907.909"
    },
    {
      "rotation": 90,
      "typeId": "t8",
      "x": "5422.7106",
      "y": "14934.616"
    },
    {
      "rotation": 0,
      "typeId": "t8",
      "x": "8036.23649551519588349420966",
      "y": "1630.0204"
    },
    {
      "rotation": 270,
      "typeId": "t8",
      "x": "7686.256324140860272256548308",
      "y": "695.2792"
    }
  ],
  "problemKey": "V09",
  "schemaVersion": "1"
}
Submission format and technical detailsOpen this when you are ready to prepare a JSON answer+

Instance parameters

{
  "case": "gardeyn1"
}

The current leader's answer

{
  "instanceId": "v09-gardeyn1-v1",
  "placements": [
    {
      "rotation": 270,
      "typeId": "t4",
      "x": "0.000000000000000000000001",
      "y": "7662.2197"
    },
    {
      "rotation": 0,
      "typeId": "t4",
      "x": "8390.54859406119588349420966",
      "y": "0.060913086"
    },
    {
      "rotation": 180,
      "typeId": "t4",
      "x": "7662",
      "y": "19999.9"
    },
    {
      "rotation": 270,
      "typeId": "t4",
      "x": "0.000000000000000000000001",
      "y": "15324.294"
    },
    {
      "rotation": 90,
      "typeId": "t4",
      "x": "16032.680024505205967839299169",
      "y": "5042.6934"
    },
    {
      "rotation": 180,
      "typeId": "t0",
      "x": "9296.926",
      "y": "14929.851"
    },
    {
      "rotation": 90,
      "typeId": "t0",
      "x": "13537.22129831411831411831412",
      "y": "13114.069"
    },
    {
      "rotation": 90,
      "typeId": "t0",
      "x": "11809.504704109336776789385226",
      "y": "5629.9775"
    },
    {
      "rotation": 0,
      "typeId": "t0",
      "x": "8243.322271208502671136002465",
      "y": "3121.5217"
    },
    {
      "rotation": 270,
      "typeId": "t0",
      "x": "3137.090962500000000000000001",
      "y": "6885.758"
    },
    {
      "rotation": 90,
      "typeId": "t9",
      "x": "7790",
      "y": "14874.53"
    },
    {
      "rotation": 0,
      "typeId": "t9",
      "x": "9136.777389742689742689742691",
      "y": "12521.145"
    },
    {
      "rotation": 270,
      "typeId": "t9",
      "x": "3885.955742565728226474519454",
      "y": "9869.223"
    },
    {
      "rotation": 90,
      "typeId": "t9",
      "x": "9460.765896015341998721500108",
      "y": "10497.304"
    },
    {
      "rotation": 180,
      "typeId": "t9",
      "x": "8392.378062181862550160876326",
      "y": "5774.5957"
    },
    {
      "rotation": 90,
      "typeId": "t3",
      "x": "16019.939339118846661469984955",
      "y": "12712.064"
    },
    {
      "rotation": 270,
      "typeId": "t3",
      "x": "13458.186442892431567130362313",
      "y": "16081.806"
    },
    {
      "rotation": 90,
      "typeId": "t3",
      "x": "16051.776384852579852579852582",
      "y": "16631.36"
    },
    {
      "rotation": 270,
      "typeId": "t3",
      "x": "13537.22129831411831411831412",
      "y": "19450.441"
    },
    {
      "rotation": 0,
      "typeId": "t3",
      "x": "6000.036192546948356807511739",
      "y": "6665.764"
    },
    {
      "rotation": 180,
      "typeId": "t2",
      "x": "7218.556499085365853658536587",
      "y": "2342.2725"
    },
    {
      "rotation": 270,
      "typeId": "t2",
      "x": "4321.177538872484855864357251",
      "y": "11226.446"
    },
    {
      "rotation": 90,
      "typeId": "t2",
      "x": "9004.754586795807539570427539",
      "y": "9129.902"
    },
    {
      "rotation": 180,
      "typeId": "t2",
      "x": "9803.875351281151281151281152",
      "y": "17868.924"
    },
    {
      "rotation": 90,
      "typeId": "t2",
      "x": "9984.351787644787644787644788",
      "y": "17391.443"
    },
    {
      "rotation": 0,
      "typeId": "t1",
      "x": "5652.811248111510791366906476",
      "y": "2687.7517"
    },
    {
      "rotation": 90,
      "typeId": "t1",
      "x": "10732.46009035087663466791858",
      "y": "2594.1133"
    },
    {
      "rotation": 0,
      "typeId": "t1",
      "x": "11557.432517362348824982156311",
      "y": "5610.251"
    },
    {
      "rotation": 270,
      "typeId": "t1",
      "x": "5077.744047619047619047619048",
      "y": "17516.78"
    },
    {
      "rotation": 0,
      "typeId": "t1",
      "x": "3121.732972512252290645642448",
      "y": "7459.874"
    },
    {
      "rotation": 180,
      "typeId": "t5",
      "x": "16017.322271208502671136002465",
      "y": "5277.907"
    },
    {
      "rotation": 90,
      "typeId": "t5",
      "x": "9724.637325301204819277108434",
      "y": "14634.803"
    },
    {
      "rotation": 270,
      "typeId": "t5",
      "x": "5600.090962500000000000000001",
      "y": "6665.6797"
    },
    {
      "rotation": 180,
      "typeId": "t5",
      "x": "4010.765896015341998721500108",
      "y": "12628.119"
    },
    {
      "rotation": 0,
      "typeId": "t5",
      "x": "2567.000000000000000000000001",
      "y": "5367.244"
    },
    {
      "rotation": 180,
      "typeId": "t6",
      "x": "9359.261140905266805480025263",
      "y": "6649.033"
    },
    {
      "rotation": 0,
      "typeId": "t6",
      "x": "4332.036192546948356807511739",
      "y": "6796.612"
    },
    {
      "rotation": 90,
      "typeId": "t6",
      "x": "2340",
      "y": "15205.449"
    },
    {
      "rotation": 270,
      "typeId": "t6",
      "x": "11809.50067881750798301506616",
      "y": "11979.012"
    },
    {
      "rotation": 90,
      "typeId": "t6",
      "x": "12905.612217362348824982156311",
      "y": "8642.742"
    },
    {
      "rotation": 0,
      "typeId": "t7",
      "x": "11062.606832663661829168912314",
      "y": "11945.542"
    },
    {
      "rotation": 90,
      "typeId": "t7",
      "x": "1290",
      "y": "15069.582"
    },
    {
      "rotation": 0,
      "typeId": "t7",
      "x": "8733.353120978120978120978122",
      "y": "18702.479"
    },
    {
      "rotation": 90,
      "typeId": "t7",
      "x": "13632.247374505205967839299169",
      "y": "5932.424"
    },
    {
      "rotation": 90,
      "typeId": "t7",
      "x": "11547.353120978120978120978122",
      "y": "18475.674"
    },
    {
      "rotation": 0,
      "typeId": "t8",
      "x": "3721.971102947034899341294622",
      "y": "6944.808"
    },
    {
      "rotation": 90,
      "typeId": "t8",
      "x": "9898.006110301056284435785823",
      "y": "11907.909"
    },
    {
      "rotation": 90,
      "typeId": "t8",
      "x": "5422.7106",
      "y": "14934.616"
    },
    {
      "rotation": 0,
      "typeId": "t8",
      "x": "8036.23649551519588349420966",
      "y": "1630.0204"
    },
    {
      "rotation": 270,
      "typeId": "t8",
      "x": "7686.256324140860272256548308",
      "y": "695.2792"
    }
  ],
  "problemKey": "V09",
  "schemaVersion": "1"
}

Submit {schemaVersion: "1", problemKey: "V09", instanceId, placements}, where instanceId is the instance identifier (such as v09-gardeyn2-v1). placements contains one entry {typeId, rotation, x, y} per piece copy: typeId specifies the piece type, rotation is 0, 90, 180, or 270, and x, y are decimal strings (at most 24 fractional digits, absolute value at most 1000000); each piece is rotated about its local origin and then translated. Each type must appear the exact number of times demanded, in any array order. Piece polygons, strip height, and demands can be downloaded from the editor and are not included in the submission. · 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.