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.4.1.tar.gz (152.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.4.1-cp313-abi3-win_amd64.whl (335.7 kB view details)

Uploaded CPython 3.13+Windows x86-64

ironnest-0.4.1-cp313-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (471.7 kB view details)

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

ironnest-0.4.1-cp313-abi3-macosx_11_0_arm64.whl (423.8 kB view details)

Uploaded CPython 3.13+macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: ironnest-0.4.1.tar.gz
  • Upload date:
  • Size: 152.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.4.1.tar.gz
Algorithm Hash digest
SHA256 7f4ddf3bbbea9ed3c5905bd982dc6fc5583011c32201baf3f0e5d4f9e9e5299b
MD5 eb626c9e43c6cdb017dd1948840a2b26
BLAKE2b-256 63ca77291378bebc54a0634026071ca4a59662ecf221fd871eb790ddec0478fb

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: ironnest-0.4.1-cp313-abi3-win_amd64.whl
  • Upload date:
  • Size: 335.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.4.1-cp313-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 a9598b98479fadda3ea7f8e00d80940fc088644a9ee15269792f9e9a2bcfe592
MD5 164c2fc520a92459a8c4e770b5c97df4
BLAKE2b-256 b040a016f6c812da7bbc2b5b94ffc3a798027b166240f1a33d9b5b2407e474a2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ironnest-0.4.1-cp313-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a2bae12a3cfefe9502dee5bf3c8e2b437fc1a228bb70741e4b20594f00e66296
MD5 0626a63ab2fd52fddc9c83d5c75ef891
BLAKE2b-256 35efe277c07bdf9ff4950c691405a9388187549d5bdd45c9639ba659b16c7c9f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ironnest-0.4.1-cp313-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a3d184a99b919c41ef29cf2af91ef60d50a42a8659d1251ca351eda8369f2d61
MD5 b2333b7166b23c0f615101092d79549c
BLAKE2b-256 00a33b5a35c1827441508e19c649cc9e8e2c24da7a5e8dbd3aa3e36ac18b2fa9

See more details on using hashes here.

Provenance

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