Benchmarks

Nesting benchmarks on the ten ESICUP tests

How tightly does Velmar Cut place irregular parts on the ten public ESICUP nesting tests? Measured here: density at 10, 30, 60 and 300 seconds per test, as the median of several runs, with each test's own rotations, no mirroring and no spacing. Every layout can be checked by a separate program that anyone can run.

Results

Density at each of the four time limits, as the median of the runs. A higher density means less material used.

Test 10 s 30 s 60 s 300 s
albano 88.13% 88.68% 88.66% 89.24%
dagli 86.74% 86.80% 87.58% 88.94%
fu 90.68% 91.48% 91.94% 91.94%
jakobs1 89.09% 89.09% 89.09% 89.09%
jakobs2 81.28% 83.08% 83.72% 83.91%
mao 83.93% 84.93% 85.80% 85.68%
marques 89.76% 90.20% 90.24% 90.36%
shirts 88.15% 88.50% 88.29% 88.94%
swim 74.03% 74.80% 75.78% 75.61%
trousers 89.70% 90.16% 90.47% 90.70%
Mean of the ten 86.15% 86.77% 87.16% 87.44%

Measured on one desktop PC: Intel Core i5-12600K, 10 cores, 16 threads; two runs at a time, 8 threads each.

Produced by a research build of Velmar Cut dated 05/11/2026, which is not in a released version.

Density = total part area / (strip width × used length).

Results others have published

Others have published figures on the same ten public tests. These are their own numbers, on their machines. We did not run their programs.

Other Nester and Other Nester Two are commercial nesting programs. We quote their published results without naming them.

60 seconds per test

The figures from other programs are as published, on their own machines, and we did not run those programs. These are the same public tests under the same rules as the publishers state them: each test's own rotations, no mirroring, no spacing. The hardware is different, so a small difference may come from the machine or from one run to the next.

Test Velmar Cut Other Nester sparrow
albano 88.66% 88.16% 87.49%
dagli 87.58% 88.07% 87.02%
fu 91.94% 91.92% 91.47%
jakobs1 89.09% 89.07% 89.07%
jakobs2 83.72% 82.11% 83.90%
mao 85.80% 84.99% 84.70%
marques 90.24% 89.74% 89.31%
shirts 88.29% 87.46% 87.40%
swim 75.78% 76.42% 75.56%
trousers 90.47% 90.95% 90.95%
Mean of the ten 87.16% 86.89% 86.69%

300 seconds per test

The other program's figures are as published, and we did not run it. These are the same public tests on different hardware, and its publisher says the hardware was not recorded. The publisher does not state rotations, mirroring or spacing, so the rules may differ from ours.

Test Velmar Cut Other Nester Two
albano 89.24% 87.9%
dagli 88.94% 87.2%
fu 91.94% 89.7%
jakobs1 89.09% 89.1%
jakobs2 83.91% 80.4%
mao 85.68% 84.0%
marques 90.36% 89.6%
shirts 88.94% 88.3%
swim 75.61% 75.1%
trousers 90.70% 90.1%
Mean of the ten 87.44% 86.1%

Other Nester

As published by its vendor: 60 seconds per test, 8 threads, median of 5 runs, on one 16-core workstation, running four tests at a time. Each test's own rotations, no mirroring, no spacing. Density by the same formula, with layouts scored by a separate check.

Published 08/10/2026

sparrow

sparrow is open-source research software under the MIT licence, by Gardeyn, Vanden Berghe and Wauters. These figures are not the authors' own and not ours: they are as Other Nester publishes them, having built version 0.3.0 from the public code and run it on its own 16-core workstation: 60 seconds per test, 16 threads, median of 3 runs. Other Nester also notes that seven of the thirty runs overlapped an unrelated job, and that in one dagli run two parts overlapped by 0.001 square units on a strip 1,000 wide, counted at the density reported. The test files that come with sparrow differ slightly from ESICUP's on four tests: fu, jakobs1 and jakobs2 have a strip 0.01% wider, and swim's corners carry decimals where ESICUP's are rounded to whole numbers. Other Nester names ESICUP as its source without saying which copy this run used. Our runs use ESICUP's own files.

Published 08/10/2026

Other Nester Two

As published by its vendor: 300 seconds per test, median of 3 runs, density as placed part area over used plate area, scored by a separate program. Hardware not recorded. Rotations, mirroring and spacing not stated.

Published 24/07/2026

Other Nester also publishes these means across the ten tests: 85.9% at 10 seconds, 86.8% at 30 seconds and 86.9% at 60 seconds, with figures by test only at 60 seconds.

What the authors report at 20 minutes

In version 4 of their paper, the authors of sparrow report these figures from 100 runs of 20 minutes per test, with 3 threads, on an AMD Ryzen 9 7950X: the expected density from Table 2 and the best ever produced from Table 3. On fu, jakobs1 and jakobs2 their strip is 0.01% wider than in ESICUP's files, which our runs use, so those three are not quite the same problem. We ran nothing for 20 minutes, so these figures are not like for like with the tables above. Source: Gardeyn, Vanden Berghe, Wauters, An open-source heuristic to reboot 2D nesting research, arXiv:2509.13329v4

At 20 minutes, these expected densities are higher than our 300-second medians on 9 of the ten tests and level on 1.

Test Expected density, 20 min Best density
albano 89.47% 89.82%
dagli 89.26% 90.17%
fu 92.24% 92.41%
jakobs1 89.09% 89.26%
jakobs2 84.77% 87.73%
mao 86.14% 86.87%
marques 90.93% 92.02%
shirts 89.66% 90.92%
swim 78.26% 79.83%
trousers 91.73% 92.62%
Mean of the ten 88.16%

What strip nesting is

Nesting means placing irregular parts on material so that as little as possible is left over. The parts keep their true outlines, so a curved edge can sit against a hollow in its neighbour and a narrow end can slip past a wide one. Rectangles stack in rows. Irregular shapes do not, and arranging them so that the gaps between them close up is the whole task, whether the material is cloth, plywood or steel.

Strip nesting, also called strip packing, is the simplest form of that task to measure. The material is a strip of fixed width with as much length as needed. All the parts must go on it without overlapping, and the score is how little length they use. A layout that ends sooner has left less empty material inside it, and nothing else about it needs to be judged.

That is why strip nesting is the standard yardstick. The outcome is one number. There are no sheet edges to argue about: no question of how to count a part that does not fit on one sheet, or whether a half-used last sheet is waste or stock. Every program gets identical parts and identical rules, so two results on the same test can be set side by side, as long as the time and the machine are stated too.

Sheets in a workshop are a different problem. A sheet has edges and a fixed length, so what is left over is spread across sheets instead of collecting at one end. Parts need spacing between them and a cut has width, so a laser, plasma or waterjet layout gives up material that a strip test does not count. A strip score says how tightly shapes can be placed, not what a given sheet will yield on the shop floor.

Density in material and money

Density is the share of the material used that ends up as parts. At 85% density, 85 of every 100 square metres become parts and the other 15 are gaps and leftovers. Whatever the material, a higher density means less of it for the same parts.

A point of density is easy to put a figure on. A 3000 × 1500 mm plate is 4.5 m², so one point on it is 0.045 m². In 10 mm steel at 7,850 kg/m³ that is about 3.5 kg per plate. Going from 85% to 86% density needs 1.16% less material (1 - 85/86), which is about 1.2 plates in every 100. To turn that into money, multiply by the price of the material you cut, per kilogram or per plate.

What happens to the rest decides how much of that is a real saving. Material not used by parts may be an offcut large enough to go back into stock and be cut on a later job, or it may be a narrow strip or a skeleton that goes for scrap. An offcut that gets used again has kept its value. One that does not has cost the price of the material, less whatever the scrap brings. So a point of density is worth most on material whose leftovers are seldom used again.

A worked example: one point of density on a steel plate
Plate of 3000 × 1500 mm4.5 m²
One point of density on that plate0.045 m²
That area in 10 mm steel at 7,850 kg/m³about 3.5 kg per plate
From 85% to 86% density (1 - 85/86)1.16% less material
The same in platesabout 1.2 plates in every 100

The ten tests

These are the ten irregular nesting test instances kept by ESICUP, the EURO Special Interest Group on Cutting and Packing. Their data sets are public, and every program gets identical shapes. Seven come from the textile industry and three were created artificially, so these are not metal parts. For a comparison of how tightly shapes can be placed, that does not matter.

Test Field Parts Different shapes Strip width Rotations
albano Textile industry 24 8 4900 0°, 180°
dagli Textile industry 30 10 60 0°, 180°
fu Artificial 12 12 38 0°, 90°, 180°, 270°
jakobs1 Artificial 25 25 40 0°, 90°, 180°, 270°
jakobs2 Artificial 25 25 70 0°, 90°, 180°, 270°
mao Textile industry 20 9 2550 0°, 90°, 180°, 270°
marques Textile industry 24 8 104 0°, 90°, 180°, 270°
shirts Textile industry 99 8 40 0°, 180°
swim Textile industry 48 10 5752 0°, 180°
trousers Textile industry 64 17 79 0°, 180°

albano

A textile test whose outlines were scanned from a sample layout in the paper by Eva Hopper and approximated by polygons. It puts 24 parts on a strip 4900 wide, from 8 different shapes with 2 to 4 of each. The shapes have 4 to 14 corners and 5 of the 8 are not convex, which leaves recesses that other parts have to be worked into. Only 0 and 180 degrees are allowed, so a part that would fit better sideways cannot lie that way.

Albano and Sappupo, 1980, Optimal allocation of two-dimensional irregular shapes using heuristic search methods, IEEE Transactions on Systems, Man and Cybernetics. ESICUP data set

albano: the 8 different shapes of this test, at one scale
The shapes of this test at one scale, drawn from ESICUP's outlines. ×n is how many of each the test has.
Density 10 s 30 s 60 s 300 s
Median 88.13% 88.68% 88.66% 89.24%
Lowest run 87.94% 88.12% 88.10% 89.16%
Highest run 89.01% 89.39% 88.99% 89.32%
albano: layout of all 24 parts on the strip

dagli

Thirty parts, exactly 3 each of 10 shapes, on a strip 60 wide. This textile test was also scanned from a sample layout by Eva Hopper. Its outlines are fairly plain, with 3 to 10 corners, and 7 of the 10 shapes are convex, so the layout has few recesses to work with. With rotations limited to 0 and 180 degrees, each shape has only two ways to lie.

Ratanapan and Dagli, 1997, An object-based evolutionary algorithm for solving irregular nesting problems, ANNIE'97. ESICUP data set

dagli: the 10 different shapes of this test, at one scale
The shapes of this test at one scale, drawn from ESICUP's outlines. ×n is how many of each the test has.
Density 10 s 30 s 60 s 300 s
Median 86.74% 86.80% 87.58% 88.94%
Lowest run 86.66% 86.24% 87.33% 88.27%
Highest run 87.13% 87.61% 88.47% 89.12%
dagli: layout of all 30 parts on the strip

fu

The smallest of the ten: 12 parts, all different, on a strip 38 wide. It is an artificial test, scanned from a sample layout by Eva Hopper. Every part has 3 or 4 corners and all are convex, so no part offers a recess for another to sit in. All four rotations are allowed, and with so few parts each single placement takes up a large share of the layout.

Fujita, Akagji and Kirokawa, 1993, Hybrid approach for optimal nesting using a genetic algorithm and a local minimisation algorithm, ASME Design Automation Conference. ESICUP data set

fu: the 12 different shapes of this test, at one scale
The shapes of this test at one scale, drawn from ESICUP's outlines. ×n is how many of each the test has.
Density 10 s 30 s 60 s 300 s
Median 90.68% 91.48% 91.94% 91.94%
Lowest run 90.43% 89.71% 91.71% 91.94%
Highest run 91.72% 91.94% 91.94% 91.94%
fu: layout of all 12 parts on the strip

jakobs1

Constructed from a sample layout by Eva Hopper, jakobs1 is one of the two artificial tests from the same paper. No shape repeats: 25 parts, 25 outlines, on a strip 40 wide. Outlines range from 3 to 12 corners and 10 of the 25 are not convex, while rotations of 0, 90, 180 and 270 degrees are all allowed. Since every part is one of a kind, a good fit found for one part cannot be used again for another.

Jakobs, 1996, On genetic algorithms for the packing of polygons, European Journal of Operational Research. ESICUP data set

jakobs1: the 25 different shapes of this test, at one scale
The shapes of this test at one scale, drawn from ESICUP's outlines. ×n is how many of each the test has.
Density 10 s 30 s 60 s 300 s
Median 89.09% 89.09% 89.09% 89.09%
Lowest run 86.94% 89.09% 89.09% 89.09%
Highest run 89.09% 89.09% 89.09% 89.09%
jakobs1: layout of all 25 parts on the strip

jakobs2

From the same origin and the same paper as jakobs1, again with 25 parts that are all different and four allowed rotations. The strip is wider here, at 70, and the outlines are simpler, with 3 to 8 corners. Even so, 11 of the 25 are not convex, one more than in jakobs1. A wider strip leaves more room across its width to fit parts side by side.

Jakobs, 1996, On genetic algorithms for the packing of polygons, European Journal of Operational Research. ESICUP data set

jakobs2: the 25 different shapes of this test, at one scale
The shapes of this test at one scale, drawn from ESICUP's outlines. ×n is how many of each the test has.
Density 10 s 30 s 60 s 300 s
Median 81.28% 83.08% 83.72% 83.91%
Lowest run 80.42% 81.92% 82.44% 83.91%
Highest run 83.91% 83.66% 83.95% 85.30%
jakobs2: layout of all 25 parts on the strip

mao

Outlines of up to 18 corners set this textile test apart from most of the others, though its simplest shapes have only 4. It was scanned from a sample layout by Eva Hopper and approximated by polygons. There are 20 parts from 9 shapes, 2 to 4 of each, on a strip 2550 wide, and 6 of the 9 shapes are not convex. All four rotations are allowed, which gives each part more ways to lie.

Bounsaythip and Maouche, 1997, Irregular shape nesting and placing with evolutionary approach, IEEE International Conference on Systems, Man and Cybernetics. ESICUP data set

mao: the 9 different shapes of this test, at one scale
The shapes of this test at one scale, drawn from ESICUP's outlines. ×n is how many of each the test has.
Density 10 s 30 s 60 s 300 s
Median 83.93% 84.93% 85.80% 85.68%
Lowest run 83.37% 84.04% 84.28% 85.02%
Highest run 84.72% 85.75% 86.56% 85.82%
mao: layout of all 20 parts on the strip

marques

On paper its counts read like albano's: 24 parts, 8 shapes with 2 to 4 of each, 4 to 14 corners, 5 of the 8 not convex. The differences are a strip 104 wide and four allowed rotations instead of two. It is a textile test as well, scanned from a sample layout by Eva Hopper and approximated by polygons.

Marques, Bispo and Sentieiro, 1991, A system for the compaction of two-dimensional irregular shapes based on simulated annealing, IECON'91. ESICUP data set

marques: the 8 different shapes of this test, at one scale
The shapes of this test at one scale, drawn from ESICUP's outlines. ×n is how many of each the test has.
Density 10 s 30 s 60 s 300 s
Median 89.76% 90.20% 90.24% 90.36%
Lowest run 89.64% 89.84% 89.90% 90.26%
Highest run 90.72% 90.95% 90.72% 90.74%
marques: layout of all 24 parts on the strip

shirts

By far the most parts of the ten: 99 pieces from the textile industry, on a strip 40 wide. They come from only 8 shapes, with 8 to 15 of each, so the same outlines meet again and again along the strip. The shapes have 4 to 10 corners, half of them are not convex, and only 0 and 180 degrees are allowed. The sheer number of parts is what a layout has to deal with here.

Used in Dowsland, Dowsland and Bennell, 1998, Jostling for position: local improvement for irregular cutting patterns, Journal of the Operational Research Society; coordinates in Oliveira, Gomes and Ferreira, 2000, A new constructive algorithm for nesting problems, OR Spectrum. ESICUP data set

shirts: the 8 different shapes of this test, at one scale
The shapes of this test at one scale, drawn from ESICUP's outlines. ×n is how many of each the test has.
Density 10 s 30 s 60 s 300 s
Median 88.15% 88.50% 88.29% 88.94%
Lowest run 87.74% 87.58% 87.90% 88.25%
Highest run 88.58% 88.86% 89.37% 89.00%
shirts: layout of all 99 parts on the strip

swim

No test here has more complicated outlines: 10 to 36 corners per shape, and 9 of the 10 shapes are not convex. This textile test has 48 parts, 3 to 6 of each shape, on a strip 5752 wide, with its data rounded to the nearest integer. Rotations are limited to 0 and 180 degrees. With so many corners and recesses, there are many ways for two parts to meet and few of them leave no gap.

Used in Dowsland, Dowsland and Bennell, 1998, Jostling for position: local improvement for irregular cutting patterns, Journal of the Operational Research Society; coordinates in Oliveira, Gomes and Ferreira, 2000, A new constructive algorithm for nesting problems, OR Spectrum. ESICUP data set

swim: the 10 different shapes of this test, at one scale
The shapes of this test at one scale, drawn from ESICUP's outlines. ×n is how many of each the test has.
Density 10 s 30 s 60 s 300 s
Median 74.03% 74.80% 75.78% 75.61%
Lowest run 73.10% 74.71% 74.86% 75.59%
Highest run 75.18% 75.57% 76.26% 76.10%
swim: layout of all 48 parts on the strip

trousers

With 17 shapes, this test has the most different shapes among the textile tests, and its 64 parts are spread unevenly, from 1 to 8 of each. The outlines are mostly simple: 4 to 11 corners, with only 2 of the 17 not convex. On a strip 79 wide, with rotations of 0 and 180 degrees, the layout has to mix shapes that appear up to 8 times with shapes that appear only once.

Oliveira, Gomes and Ferreira, 2000, A new constructive algorithm for nesting problems, OR Spectrum. ESICUP data set

trousers: the 17 different shapes of this test, at one scale
The shapes of this test at one scale, drawn from ESICUP's outlines. ×n is how many of each the test has.
Density 10 s 30 s 60 s 300 s
Median 89.70% 90.16% 90.47% 90.70%
Lowest run 89.24% 89.90% 90.00% 90.49%
Highest run 90.20% 90.36% 91.33% 90.97%
trousers: layout of all 64 parts on the strip

Test it yourself

Every test can be downloaded with its parts, sheet and rules. Anyone can run it in their own nesting program and work out the density the same way.

  1. Download a test's ZIP. It holds the parts as DXF, the quantities, the sheet and rules, and ESICUP's original file.
  2. Import the parts at 1:1 with the quantities in parts.csv. In Velmar Cut, open the job file in the ZIP instead, which already has the parts, the sheet and the rules. The job opens at the Fast level, and the runs in the results tables did not use that level's settings, so a figure from the job as it opens will be different from theirs.
  3. Set a sheet or strip of the test's width, long enough for every part. Its length does not count, only how much of it the layout uses.
  4. Allow only the test's rotations, with no mirroring, no spacing and no kerf. Run for the time you choose.
  5. Note the used length. Density is the total part area, given in setup.json and README.txt, divided by the strip width times the used length. Your figure depends on the program, the time and the machine, so state them with it.

How the tests are run

The same score, the same rules, the same time limits and the same check apply on all ten tests.

Density

Density is the total area of the parts divided by the strip's width times the length the layout uses. The parts and the width are fixed by the test, so the only thing a layout can change is the used length, and a shorter layout has a higher density. That makes it a fair score: it needs no judgement about how a layout looks, and it means the same on a strip 38 wide as on one 5752 wide.

The rules

No part may be mirrored, because a mirrored part is a different outline. No spacing is required between parts, since the tests describe shapes and not a particular cutting process, so parts may touch. Each part may take only the rotations its test allows: 0 and 180 degrees on five of the tests, and 0, 90, 180 and 270 degrees on the other five.

Time limits of 10, 30, 60 and 300 seconds

Several limits are reported because they answer different questions. A short limit shows what a program reaches quickly, which is what counts when a quote is waiting. A long limit shows what more time adds. The distance between the columns shows how much of the density comes early and how much comes later, and a single limit would hide that.

Several runs and the median

Each test runs five times at 10, 30 and 60 seconds and three times at 300 seconds, and the table gives the median: the middle result when the runs are sorted, with half at or above it and half at or below it. Results can differ from one run to the next, so one lucky run proves nothing about the next, and one unusually good or unusually poor run does not move the median. With an odd number of runs the median is one real run, and that run's layout is published.

The machine

All results come from one desktop PC with a stated number of threads per run. Both are stated with the table, because a result without its machine says little: in the same time, a faster processor or more threads get through more work. Figures from different machines can be read side by side only with that in mind.

What counts

A layout counts only if it passes a separate check against the true outlines of the test. The check is apart from the program that made the layout and looks only at the result: whether the parts are the right ones, whether they lie inside the strip and whether any of them overlap. A layout that fails does not count, whatever its length.

You don't have to trust us

The checkers are there for anyone to run. They check our layouts against ESICUP's own test files, which are in the archive, by exact arithmetic.

Each layout holds ESICUP's corners exactly, all turned 90 degrees together and multiplied by one round factor per test, so that each strip is about 1000 wide. Density is the same with or without the factor. records.json and each check file state the factor.

Download and unpack the archive, then run this. It runs both checkers on every layout and compares each density with the published one:

python verify_all.py

What it checks

  • No two parts overlap beyond the published tolerance: 1e-9 on strips 832 to 1438 wide, which is double-precision rounding.
  • Every part is inside the strip.
  • The parts are exactly ESICUP's, corner by corner, and there is the right number of each.
  • Each part uses a rotation the test allows.
  • No part is mirrored.

What it does not check

  • That a layout is the best possible.
  • How long it took or on what machine.
  • How the layout was found.

What these numbers do not tell you

  • These scores will not match the utilisation on a sheet with spacing and kerf. A strip with no spacing is a different measurement.
  • Most of these shapes come from textile cutting, not metal.
  • Ten tests are not your jobs. The way to know is to run your own.
  • The numbers hold for these tests under these conditions and for nothing wider.

Questions

What is ESICUP?

ESICUP is the EURO Special Interest Group on Cutting and Packing. It keeps the public data sets of the ten irregular nesting tests used on this page, so that everyone can work from the same shapes.

What is density in nesting?

It is the share of the used material covered by parts. On a strip it is the total area of the parts divided by the strip's width times the used length. A higher density means a shorter strip for the same parts.

Why the median and not the best run?

Results can differ from one run to the next, and one lucky run says little about what to expect from the next. The median is the middle result when the runs are sorted, so half the runs reach it or more and half reach it or less.

Why are the numbers below 100 percent?

Irregular shapes do not tile. Where two outlines meet, some gaps are too small or the wrong shape for any part to fill, and with no mirroring and limited rotations a part often cannot be turned to close them.

Does a higher score mean fewer sheets on my job?

Not necessarily. Your parts, sheets, spacing and kerf are not those of these tests, as the limits above explain. The way to know is to try your own job.

Can I check these results myself?

Yes. The checkers are published here with the results, and anyone can run them on the layouts. They check each layout against the true outlines of the public test.

The tests are the public data sets of ESICUP, kept on GitHub at github.com/ESICUP/datasets.

Free trial

Seven days with every edition

Install Velmar Cut, enter the parts and stock of a current job and print the cutting schedule. The trial starts on first run and needs no account or card.