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.5.0.tar.gz (194.3 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.5.0-cp313-abi3-win_amd64.whl (506.0 kB view details)

Uploaded CPython 3.13+Windows x86-64

ironnest-0.5.0-cp313-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (647.7 kB view details)

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

ironnest-0.5.0-cp313-abi3-macosx_11_0_arm64.whl (576.6 kB view details)

Uploaded CPython 3.13+macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for ironnest-0.5.0.tar.gz
Algorithm Hash digest
SHA256 b6a9cb93d4505f6eb4075c7745d132a3a5436147b145a810326fce9698bc9948
MD5 edf9a42daa10817d6e343d020b9f2e82
BLAKE2b-256 f0667c4a9240a3b07f7dea0076a3ac367ca6431612e8d2726c0cb777478eade6

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: ironnest-0.5.0-cp313-abi3-win_amd64.whl
  • Upload date:
  • Size: 506.0 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.5.0-cp313-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 508fb1e0f3239d56a600ab89bc9bc3598d4076b53d658fe6d51a89bf56165c4f
MD5 f29cd7128d59f8e34625573da414586b
BLAKE2b-256 7ec4d8236f1d0a107a9daaceff98b84137c3224f2ad50b5fed2105e5570929ef

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ironnest-0.5.0-cp313-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d789dcbd77f6b833267b892bb3ad6de352927198e96b15cb2ee18d504247c66e
MD5 cfc90e3124c63a7e37cf4400061c7e01
BLAKE2b-256 2909c7ee1acff117dcbd0dcc0a1714f2bdcf06bf6cf7be52a3f82de13cf9f8bc

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ironnest-0.5.0-cp313-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0165821ee84c2171dc967f123d67fcdb960cb01b9e0762c1233f65c6d5c6498a
MD5 e760a042d30fcb60f1de8e77e9085300
BLAKE2b-256 68e8bc675b660dd4eeda11179da5b12743486661c9759d53970e0d50ff0669f9

See more details on using hashes here.

Provenance

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