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.3.0.tar.gz (144.5 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.3.0-cp313-abi3-win_amd64.whl (322.0 kB view details)

Uploaded CPython 3.13+Windows x86-64

ironnest-0.3.0-cp313-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (457.1 kB view details)

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

ironnest-0.3.0-cp313-abi3-macosx_11_0_arm64.whl (409.9 kB view details)

Uploaded CPython 3.13+macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for ironnest-0.3.0.tar.gz
Algorithm Hash digest
SHA256 4439ee033d9a8622ed56811cb60709981c48a15400b87e66511c007050b033fc
MD5 f678cb223a8f04a57e8e9c908d47655e
BLAKE2b-256 319b7720a1139b1f2a491cd735f46d89256867076ffcf9894f93c257c899f7c6

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: ironnest-0.3.0-cp313-abi3-win_amd64.whl
  • Upload date:
  • Size: 322.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.3.0-cp313-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 5656d7cc8ef268fbffc5c0cd630992c3c3bbc3ddf01eebb7d42c22ff45b2ea54
MD5 590aab6f764ab7cbbe0bbaa1fb68e2ef
BLAKE2b-256 b08f9b013c9f3a18055684495b23904ea50328ffed74b4b9b99d8c05fc816bb2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ironnest-0.3.0-cp313-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c62d45665bb71879335fd11ef6c64fed1ae1c209eb68ebf83ecace3fa10938a7
MD5 ea21350587984158669e8f57e68d44c2
BLAKE2b-256 477b14e5da6ef8d69163e0af0ef7ad23167c4dae12fb87f04a2d724a8409ec8e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ironnest-0.3.0-cp313-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 39a733532ed18b6848b26286ed78278c85dcbf00ba5f80bce6122ff945d71a0d
MD5 4f6e4a7104261a7a3fa5689651f53326
BLAKE2b-256 9e6781154603fa77d4f4f4a48a79919fb4e98e56a80904f1f104510c7b02ef35

See more details on using hashes here.

Provenance

The following attestation bundles were made for ironnest-0.3.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 Pingdom Monitoring Sentry Error logging StatusPage Status page