Skip to main content

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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ironnest-0.6.1.tar.gz (215.5 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

ironnest-0.6.1-cp313-abi3-win_amd64.whl (539.9 kB view details)

Uploaded CPython 3.13+Windows x86-64

ironnest-0.6.1-cp313-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (680.9 kB view details)

Uploaded CPython 3.13+manylinux: glibc 2.17+ x86-64

ironnest-0.6.1-cp313-abi3-macosx_11_0_arm64.whl (608.8 kB view details)

Uploaded CPython 3.13+macOS 11.0+ ARM64

File details

Details for the file ironnest-0.6.1.tar.gz.

File metadata

  • Download URL: ironnest-0.6.1.tar.gz
  • Upload date:
  • Size: 215.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ironnest-0.6.1.tar.gz
Algorithm Hash digest
SHA256 37d13bf8185462de3876053bd9b8a0e58413e32a37246f89f0ea2ff120d64e82
MD5 c69e42d9406e44c59e3616d14edd9885
BLAKE2b-256 fd1e074210c15d1c410202404d6f478fb92a27d2dbf28cc31909a0ffc5ee1847

See more details on using hashes here.

Provenance

The following attestation bundles were made for ironnest-0.6.1.tar.gz:

Publisher: wheels.yml on TexasCoding/ironnest

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ironnest-0.6.1-cp313-abi3-win_amd64.whl.

File metadata

  • Download URL: ironnest-0.6.1-cp313-abi3-win_amd64.whl
  • Upload date:
  • Size: 539.9 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

Hashes for ironnest-0.6.1-cp313-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 4c92c583dacc73fc380f49bd6e4b22f8b92376e31724684954979beec83861df
MD5 2a9ac32c06a6dd1986991710f9b55bc6
BLAKE2b-256 e3e8183c9f135749b06dc9abb08496ca722848abf47490d92fbd2f1dab8190b4

See more details on using hashes here.

Provenance

The following attestation bundles were made for ironnest-0.6.1-cp313-abi3-win_amd64.whl:

Publisher: wheels.yml on TexasCoding/ironnest

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ironnest-0.6.1-cp313-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ironnest-0.6.1-cp313-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 669bdb07c522d6d1d7ad29bdfdbef26cdeefb0aa31de5dcb3e86df2373d83c9d
MD5 e0b3106a3676e6883f915c4d855b7e63
BLAKE2b-256 4d73e96c20fde2f0c0df9d2a4de5e35c58b5d390c73bbe9d129c27f6a4f3832e

See more details on using hashes here.

Provenance

The following attestation bundles were made for ironnest-0.6.1-cp313-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: wheels.yml on TexasCoding/ironnest

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ironnest-0.6.1-cp313-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ironnest-0.6.1-cp313-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c6f577cb5c6008ffeb6368f5d6c415268e1c293c9cdd0cacd996e02e2e5d08f0
MD5 7a78a54330b65636296fbd8859c8b7ba
BLAKE2b-256 652c8b3e277306e819af29521f7aae8cfb1c132a0b355a3dd29ee5aeab099b04

See more details on using hashes here.

Provenance

The following attestation bundles were made for ironnest-0.6.1-cp313-abi3-macosx_11_0_arm64.whl:

Publisher: wheels.yml on TexasCoding/ironnest

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page