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.0.tar.gz (213.9 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.0-cp313-abi3-win_amd64.whl (539.7 kB view details)

Uploaded CPython 3.13+Windows x86-64

ironnest-0.6.0-cp313-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (680.7 kB view details)

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

ironnest-0.6.0-cp313-abi3-macosx_11_0_arm64.whl (608.0 kB view details)

Uploaded CPython 3.13+macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: ironnest-0.6.0.tar.gz
  • Upload date:
  • Size: 213.9 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.0.tar.gz
Algorithm Hash digest
SHA256 c8c5477cefb105406e9c45ed808e473b47ea98f8d66614df2bfeae5f828f8b79
MD5 a204819bc600fc2f54efcf9ce36e0a7e
BLAKE2b-256 b04fbb66afe94c7d920858460e52d4654f264fd54b6d959665b24189761f200d

See more details on using hashes here.

Provenance

The following attestation bundles were made for ironnest-0.6.0.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.0-cp313-abi3-win_amd64.whl.

File metadata

  • Download URL: ironnest-0.6.0-cp313-abi3-win_amd64.whl
  • Upload date:
  • Size: 539.7 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.0-cp313-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 cd2e348544356e05559ebad7ab51508d8242e38f089815234bd78bb8d2f4efa7
MD5 4c01b6b65cd2de492c509c39ad4b5651
BLAKE2b-256 f324b63e5b023dacf9351081cd7adeeac1bbdae65452e5655b7d8335c2d06d25

See more details on using hashes here.

Provenance

The following attestation bundles were made for ironnest-0.6.0-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.0-cp313-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ironnest-0.6.0-cp313-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cef43cb505bc3750a84c560b35f40b546bd97d323a8a64414c6b101c053c5edc
MD5 0bbf74e08b9ec5a27695e83d865a282b
BLAKE2b-256 1f9e2330d5812fb7be4590bff80cb97564aa12328300dfd52e105917cd395301

See more details on using hashes here.

Provenance

The following attestation bundles were made for ironnest-0.6.0-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.0-cp313-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ironnest-0.6.0-cp313-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f387d40132e1064b61f68ed1a723e5e6559650b479b806fde36d1bcda797fdb7
MD5 27baa44145120a3c8b2afbab3cdb3fcb
BLAKE2b-256 cd25bb2812666da0a0137c21729c546c63927fa6d14a7b931840a46d601faa37

See more details on using hashes here.

Provenance

The following attestation bundles were made for ironnest-0.6.0-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