Skip to content
Nesting benchmark · 2026-11-02

Zorocut packed the parts tighter than Deepnest.

Every nester got the same parts on the same plates, with the same spacing, margin, rotations and a 30-second time budget. Each tool's own exported layout was then measured by one scorer — no vendor's utilisation figure is used. A layout counts only if every part is there, nothing overlaps and the spacing is kept.

81.5 %Zorocut's mean density on the 13 ESICUP cases, 30 s
+17.5 ptsagainst Deepnest (64.0 %): same cases, same 30 s
4 sheetsfor the four shop jobs, 77.7 % mean density

Results per case

Density in %: part area over the material the layout consumes (every sheet but the last in full, the last up to its used length). Higher is better. For the shop jobs the sheets used are in brackets. The best valid score per row is bold; a struck-through score is an invalid layout (hover it for why) and is left out of the means.

CaseZorocutZorocut, 1 enginesparrowsparrow, 1 threadDeepnestSVGnestZorocut, 3 s
albano24 parts · ESICUP87.6086.9887.6387.8282.3279.23 ✗86.73
blaz128 parts · ESICUP80.4979.8082.6681.2173.8468.84 ✗78.30
brackets-rings134 parts · shop job73.22 (1)72.17 (1)71.54 (1)70.31 (1)no layout ✗no layout ✗70.62 (1)
dagli30 parts · ESICUP85.8185.1986.0986.2452.2677.62 ✗83.03
fu12 parts · ESICUP88.9588.3789.7889.7351.2476.83 ✗87.90
irregular67 parts · shop job76.58 (1)76.24 (1)78.53 (1)78.11 (1)72.73 (1)70.06 (1) ✗75.46 (1)
jakobs125 parts · ESICUP83.7781.1388.3484.6851.3073.0581.09
jakobs225 parts · ESICUP79.2079.2481.9779.8768.5263.83 ✗73.71
mao20 parts · ESICUP81.0380.7184.4582.9558.7373.52 ✗80.45
marques24 parts · ESICUP88.7688.8588.4189.0481.0581.63 ✗87.82
rectangles117 parts · shop job89.31 (1)89.12 (1)90.45 (1)88.31 (1)77.40 (1)83.07 (1)88.77 (1)
samples-mix107 parts · shop job71.56 (1)71.56 (1)72.98 (1)70.18 (1)21.15 (1)no layout ✗71.08 (1)
shapes043 parts · ESICUP64.8663.4465.8865.2750.3954.53 ✗62.95
shapes143 parts · ESICUP71.5070.7871.1071.9549.8856.76 ✗70.27
shirts99 parts · ESICUP85.5184.4986.4485.2480.8777.70 ✗83.69
swim48 parts · ESICUP72.6472.0374.3672.3351.9162.18 ✗71.67
trousers64 parts · ESICUP89.3488.1289.8989.0380.0683.05 ✗86.91
ESICUP mean (13)81.5080.7082.8581.9564.031/13 valid79.58
Shop jobs: sheets, mean4, 77.674, 77.274, 78.384, 76.733/4 valid1/4 valid4, 76.48

SVGnest returned 12 invalid ESICUP layouts (parts closer than the spacing or missing), so it has no mean here; its per-case scores are shown struck through.

sparrow, 4 threads (native research code) is 1.3 points ahead of Zorocut on the ESICUP mean: native code with no sheets, holes or file handling, against Zorocut's WebAssembly engine in a browser.

sparrow, 1 thread (native research code) is 0.5 points ahead of Zorocut on the ESICUP mean: native code with no sheets, holes or file handling, against Zorocut's WebAssembly engine in a browser.

Lapas is not in this table yet: its Free plan allows five exports a month, and its run is being added.

The cases

  • ESICUP: the 13 classic irregular strip-packing instances used in nesting research (ALBANO … TROUSERS, CC0, github.com/ESICUP/datasets), scaled so the strip is 1,500 mm high, on one plate 1,500 mm high and long enough for 50 % density. Spacing 1 mm (Lapas always keeps at least 1 mm), margin 0, each instance's own rotations. Scored by the length used.
  • Shop jobs: four jobs from Zorocut's own test parts — rectangles, irregular brackets, rings with parts that fit in their holes, a sample mix — 67 to 134 parts on 3,000 × 1,500 or 2,500 × 1,250 sheets. Spacing 3 mm, margin 10 mm. Scored by sheets, then the material used.
  • Every tool read the same polygon files (one DXF per part with quantities, or every copy in one DXF or SVG where typing quantities would be slow).

The tools

  • Zorocut — 30 s, 4 engines (best of 4 seeds), WebAssembly (Zorocut 64c9bea).
  • Zorocut, 1 engine — 30 s, 1 thread, WebAssembly (Zorocut 64c9bea).
  • sparrow — 30 s, 4 threads, native (research code, MIT) (sparrow 6f7b9d3).
  • sparrow, 1 thread — 30 s, 1 thread, native (sparrow 6f7b9d3).
  • Deepnest — deepnest-next 1.5.6, 30 s, 4 threads (its default) (deepnest-next 1.5.6).
  • SVGnest — 30 s, its default web workers (SVGnest 1248dc2).
  • Zorocut, 3 s — 3 s (the site's default), 4 engines (Zorocut 64c9bea).

Zorocut ran the WebAssembly engine the site and Zorocut Nest use, on one Apple M-series laptop (10 cores); so did sparrow, Deepnest and SVGnest. Lapas runs on its own servers. sparrow is the open-source research heuristic (KU Leuven, MIT) that both Lapas' engine and Zorocut's last-sheet step build on; it is not a shop product (no sheets, holes or DXF export), but it is the state of the art, so it is the bar. Deepnest's core is GPL: it was run as a separate program through its own window, never linked. Each tool ran once per case; Zorocut's 4-engine column is the best of four seeds, as the site does on a computer with five cores or more.

Check it yourself

  • results.csv: every score, with the reason for each invalid layout.
  • zorocut-nesting-benchmark.zip: the input files of every case and every tool's exported layout, so any CAD program or script can re-measure them.
  • The limits: these are 17 cases, not 50 real shop jobs; the shop jobs are our own geometry; one run per tool and case. We will add real customer jobs (with permission) and rerun when a tool releases a new version. Corrections: [email protected].
  • Zorocut's engine uses open-source research code: open-source notices.