Public, versioned test data for measuring material use in one-dimensional and two-dimensional cutting workflows. This repository is the canonical home for CutNesting benchmark inputs, schemas, methodology, DXF/NC1 samples, spreadsheet templates, and immutable result releases.
It is not a competitor leaderboard. The benchmark reports what a named engine
version produced for fixed public inputs: feasibility, stock consumption,
finished-part yield, reusable remnants, disposable material, solver status, and
runtime. A result is described as globally optimal only when the engine returns
an independently validated proof-bearing optimal status.
- Browse the 1D benchmark dataset.
- Read the 1D methodology before interpreting waste or efficiency figures.
- Browse the 2D benchmark dataset and read its area-utilization methodology.
- Download synthetic DXF and DSTV/NC1 samples.
- Use the CutNesting-compatible CSV and XLSX templates.
- Check the exact DSTV/NC1 subset represented by the samples.
- Read the repository ownership contract before integrating an engine runner.
For practical context, use the relevant CutNesting guide rather than only its homepage:
datasets/ Versioned benchmark inputs and suite manifests
methodology/ Metric definitions, validation rules, and timing policy
schemas/ Machine-readable benchmark contracts
samples/ Synthetic DXF and NC1 parser/review fixtures
templates/ Import-ready CSV examples for common materials
results/ Immutable public result snapshots and compact CSV summaries
docs/ Format and integration notes
scripts/ Dependency-free repository validation
Node.js 20 or newer is sufficient; there are no package dependencies.
npm testThe check verifies every manifest reference, benchmark case identity, important input invariant, sample-file declaration, generated CSV/XLSX template, and published SHA-256 checksum.
Template files are generated deterministically from
templates/definitions.json. After changing those definitions, run:
npm run generate:templates
npm run generate:checksums
npm testRunning the actual solver benchmark is intentionally an engine responsibility. The CutNesting product repository contains its production Rust adapter and pins the exact dataset release or commit that it consumes.
The first 1D reference-machine result is published
for all 13 cases against dataset tag v1.0.1. It includes raw timings, complete
material accounting, independent validation outcomes, engine and dataset
commits, and machine metadata. Development runs remain local diagnostics and
must not be copied into marketing claims.
The initial 2D suite contains five deterministic cases covering exact fit, steel plate, wood sheet, irregular remnant geometry, and finite-stock exhaustion. Its primary metric is geometric utilization. "Estimated unused area" is not disposable waste because kerf, lead-ins, pierces, and toolpaths are outside this benchmark's scope.
The current immutable dataset release is
v1.1.0.
This release adds the initial public 2D suite without changing the immutable 1D
v1 inputs. Release
v1.0.1
remains the source for the published 1D result.
Release v1.0.0 is superseded because Windows checkout line-ending conversion
prevented byte-for-byte template verification; benchmark case semantics did not
change in v1.0.1.
- Dataset cases, sample files, templates, and documentation: CC BY 4.0. See LICENSE-DATA.md.
- Validation and repository code: MIT. See LICENSE.
Every currently included case and geometry file is synthetic. Do not contribute customer drawings, production files, or third-party examples without documented permission and anonymisation.
See CONTRIBUTING.md. Changes to an existing versioned suite must preserve reproducibility; semantic input changes require a new suite version.