Skip to main content

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

ironnest-0.2.1.tar.gz (126.4 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.2.1-cp313-abi3-win_amd64.whl (314.4 kB view details)

Uploaded CPython 3.13+Windows x86-64

ironnest-0.2.1-cp313-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (448.9 kB view details)

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

ironnest-0.2.1-cp313-abi3-macosx_11_0_arm64.whl (403.3 kB view details)

Uploaded CPython 3.13+macOS 11.0+ ARM64

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

Hashes for ironnest-0.2.1.tar.gz
Algorithm Hash digest
SHA256 829a4b884a9f5715dc816825fc82bc70fba6a6013685361339a115afabf2b533
MD5 26a3b85b50ba9ee9418c4839d2aefeb3
BLAKE2b-256 09f773b96d4b20857c49060840c2262f9ff9c56f9590be0dd99dafe2982798b3

See more details on using hashes here.

Provenance

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

Hashes for ironnest-0.2.1-cp313-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 39592f629b86db260660ee3196fed040555153921d8e1b47ffbe614690c52ec1
MD5 bd1e6fe401759492414d8431f6fe87ed
BLAKE2b-256 114d10f7f885279127dac1dbed08a507c9fd1fc627e9e6ecf6a483a64b69dbb7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ironnest-0.2.1-cp313-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4c29a240849bfc251c1910f62cde54351f7232008174457a59804fc04eaec81c
MD5 11bebb52e5cfa9d1b3bb5511571ad13c
BLAKE2b-256 0bc4e9fd906b5dcb4963f8644abe607843fcdcc8a6586676e734e3ad17b3b4a7

See more details on using hashes here.

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

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.2.1-cp313-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ironnest-0.2.1-cp313-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d6c3ca83cb8502bc1307f56e46d86d08f286715ed68f7ad47d526a1d3a8c361c
MD5 7aff38fdb2c5fba5ea0f1a2ada0a6fed
BLAKE2b-256 79bf03198ffe68291b2571e3546c2d980eb87385487b3e088706e2d148a8852b

See more details on using hashes here.

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

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 Pingdom Monitoring Sentry Error logging StatusPage Status page