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.2.tar.gz (127.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.2.2-cp313-abi3-win_amd64.whl (314.6 kB view details)

Uploaded CPython 3.13+Windows x86-64

ironnest-0.2.2-cp313-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (449.1 kB view details)

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

ironnest-0.2.2-cp313-abi3-macosx_11_0_arm64.whl (403.4 kB view details)

Uploaded CPython 3.13+macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: ironnest-0.2.2.tar.gz
  • Upload date:
  • Size: 127.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.2.2.tar.gz
Algorithm Hash digest
SHA256 b8870f9351434d668ef721f158b3447cb7b10e16fb7638811aea6fdd5945f03d
MD5 beb81d901d381afb6a9236f90b2bd2ad
BLAKE2b-256 efb1b7c55b72c034dac577971c1acc12a915a9f638cfb84ad8f9d9cbe7780d2c

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: ironnest-0.2.2-cp313-abi3-win_amd64.whl
  • Upload date:
  • Size: 314.6 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.2-cp313-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 15c05fb5e5d93d2614f32e955d77b14f3f66dd2d37249d9c27862d6c6d47ab26
MD5 866b7fe19c49f0330903674c8beeac75
BLAKE2b-256 fc1b1f6bd40c5ec103ef525c49f8e36ccc45c103ace604455bcd66f08f4ca67d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ironnest-0.2.2-cp313-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 553d3d7abb834e73e5b122904de6597d109308d63f19dde1715a0376bc8e0a43
MD5 c57807bec5aef6adfefc6c69f489fdf7
BLAKE2b-256 7464d8286b2776bd353eb3071b60047af011a58d7c9865150a7ccfe8e64e2fc5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ironnest-0.2.2-cp313-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 602988a40df8e09b208e4a30cc02bb5f58ad7494d5f0eb02f0ddab0ecd7b7d9a
MD5 4aceb46b954db7d5fad168937c4ded92
BLAKE2b-256 ce5ea784c752ce42358ce45e70c4e44deb8ee24ae1c3098b0765b5550ba80c51

See more details on using hashes here.

Provenance

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