Deterministic, embeddable, true-shape 2D nesting engine for irregular parts
Project description
ironnest
Deterministic, embeddable, true-shape 2D nesting engine for irregular parts — a Rust core (a jagua-rs fork at f64) exposed to Python via PyO3.
The differentiator is determinism: the same inputs produce byte-identical placements on every platform (macOS-arm64 / Windows-x64 / linux-x64), proven by a cross-platform CI golden — so a re-nest reproduces a byte-identical downstream cut program for a machine audit trail.
Install
pip install ironnest
One abi3 wheel per platform (macOS-arm64 / Windows-x64 / linux-x64) serves CPython 3.13+.
Usage
import ironnest
# one outline per part type, in item-local coords
items = [[(0.0, 0.0), (10.0, 0.0), (10.0, 10.0), (0.0, 10.0)]]
container = [(0.0, 0.0), (100.0, 0.0), (100.0, 100.0), (0.0, 100.0)]
placements, unplaced = ironnest.nest(
items,
qty=[25],
container=container,
holes=[], # interior keep-out zones ([] = none)
min_sep=0.0, # 0.0 keeps output byte-identical across platforms
rotations=[0.0, 90.0, 180.0, 270.0],
seed=1, # explicit — no entropy fallback, ever
budget=2000, # a fixed sample budget, never a wall clock
)
# placements: list[(item, x, y, rotation_deg)] with placed = Rot(rotation_deg)·original + (x, y)
# unplaced: list[int] (item-type index per instance that did not fit)
holes are interior keep-out polygons on the sheet (nesting around voids / inside parts). To pack
across several sheets in order, use nest_multi(items, qty, sheets, min_sep, rotations, seed, budget)
where each sheet is an (outline, holes) pair.
The engine is a pure placement oracle: it knows nothing about kerf, lead-ins, pierces, cut sequencing, or G-code — those belong to the consuming CAD/CAM application, which re-validates every layout. See the project repository for the full design.
Licensed under MPL-2.0.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ironnest-0.2.1.tar.gz.
File metadata
- Download URL: ironnest-0.2.1.tar.gz
- Upload date:
- Size: 126.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
829a4b884a9f5715dc816825fc82bc70fba6a6013685361339a115afabf2b533
|
|
| MD5 |
26a3b85b50ba9ee9418c4839d2aefeb3
|
|
| BLAKE2b-256 |
09f773b96d4b20857c49060840c2262f9ff9c56f9590be0dd99dafe2982798b3
|
Provenance
The following attestation bundles were made for ironnest-0.2.1.tar.gz:
Publisher:
wheels.yml on TexasCoding/ironnest
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ironnest-0.2.1.tar.gz -
Subject digest:
829a4b884a9f5715dc816825fc82bc70fba6a6013685361339a115afabf2b533 - Sigstore transparency entry: 1899488203
- Sigstore integration time:
-
Permalink:
TexasCoding/ironnest@fa2a6004a8de4f124d1e85c1fa65f7249e26dcef -
Branch / Tag:
refs/tags/v0.2.1 - Owner: https://github.com/TexasCoding
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@fa2a6004a8de4f124d1e85c1fa65f7249e26dcef -
Trigger Event:
push
-
Statement type:
File details
Details for the file ironnest-0.2.1-cp313-abi3-win_amd64.whl.
File metadata
- Download URL: ironnest-0.2.1-cp313-abi3-win_amd64.whl
- Upload date:
- Size: 314.4 kB
- Tags: CPython 3.13+, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
39592f629b86db260660ee3196fed040555153921d8e1b47ffbe614690c52ec1
|
|
| MD5 |
bd1e6fe401759492414d8431f6fe87ed
|
|
| BLAKE2b-256 |
114d10f7f885279127dac1dbed08a507c9fd1fc627e9e6ecf6a483a64b69dbb7
|
Provenance
The following attestation bundles were made for ironnest-0.2.1-cp313-abi3-win_amd64.whl:
Publisher:
wheels.yml on TexasCoding/ironnest
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ironnest-0.2.1-cp313-abi3-win_amd64.whl -
Subject digest:
39592f629b86db260660ee3196fed040555153921d8e1b47ffbe614690c52ec1 - Sigstore transparency entry: 1899488373
- Sigstore integration time:
-
Permalink:
TexasCoding/ironnest@fa2a6004a8de4f124d1e85c1fa65f7249e26dcef -
Branch / Tag:
refs/tags/v0.2.1 - Owner: https://github.com/TexasCoding
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@fa2a6004a8de4f124d1e85c1fa65f7249e26dcef -
Trigger Event:
push
-
Statement type:
File details
Details for the file ironnest-0.2.1-cp313-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: ironnest-0.2.1-cp313-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 448.9 kB
- Tags: CPython 3.13+, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4c29a240849bfc251c1910f62cde54351f7232008174457a59804fc04eaec81c
|
|
| MD5 |
11bebb52e5cfa9d1b3bb5511571ad13c
|
|
| BLAKE2b-256 |
0bc4e9fd906b5dcb4963f8644abe607843fcdcc8a6586676e734e3ad17b3b4a7
|
Provenance
The following attestation bundles were made for ironnest-0.2.1-cp313-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
wheels.yml on TexasCoding/ironnest
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ironnest-0.2.1-cp313-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
4c29a240849bfc251c1910f62cde54351f7232008174457a59804fc04eaec81c - Sigstore transparency entry: 1899488278
- Sigstore integration time:
-
Permalink:
TexasCoding/ironnest@fa2a6004a8de4f124d1e85c1fa65f7249e26dcef -
Branch / Tag:
refs/tags/v0.2.1 - Owner: https://github.com/TexasCoding
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@fa2a6004a8de4f124d1e85c1fa65f7249e26dcef -
Trigger Event:
push
-
Statement type:
File details
Details for the file ironnest-0.2.1-cp313-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: ironnest-0.2.1-cp313-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 403.3 kB
- Tags: CPython 3.13+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d6c3ca83cb8502bc1307f56e46d86d08f286715ed68f7ad47d526a1d3a8c361c
|
|
| MD5 |
7aff38fdb2c5fba5ea0f1a2ada0a6fed
|
|
| BLAKE2b-256 |
79bf03198ffe68291b2571e3546c2d980eb87385487b3e088706e2d148a8852b
|
Provenance
The following attestation bundles were made for ironnest-0.2.1-cp313-abi3-macosx_11_0_arm64.whl:
Publisher:
wheels.yml on TexasCoding/ironnest
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ironnest-0.2.1-cp313-abi3-macosx_11_0_arm64.whl -
Subject digest:
d6c3ca83cb8502bc1307f56e46d86d08f286715ed68f7ad47d526a1d3a8c361c - Sigstore transparency entry: 1899488433
- Sigstore integration time:
-
Permalink:
TexasCoding/ironnest@fa2a6004a8de4f124d1e85c1fa65f7249e26dcef -
Branch / Tag:
refs/tags/v0.2.1 - Owner: https://github.com/TexasCoding
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@fa2a6004a8de4f124d1e85c1fa65f7249e26dcef -
Trigger Event:
push
-
Statement type: