Nesting

Nesting Bitmap Polygon

True Shape Nesting

True-shape nesting via bitmap pixel-mask collision. Handles curved, concave, and holed shapes natively. Supports BLF (fast) and GA (dense) packing, per-part rotation, kerf-aware spacing, hex pre-pass for circle inputs, and QLM post-pass compaction.

Docs for v2.1.21, the latest version.

ID

nesting-true-shape-nesting-nesting-bitmap-polygon

Group

True Shape Nesting

Plugin

Nesting

Keywords

nest
nesting
bitmap
polygon
true
shape
ga
genetic
concave
curve
9 inputs, 9 outputs, 10 config ports

Ports

Inputs

9

What the node takes in, from wires or typed values.

Origin

Vector

Default [0,0,0]

Origin point for sheet placement

Geometries

Geometry

List of geometries to be nested. Any shape — curves, concavity, holes handled natively.

Sheet Width

Number

Default 500

Width of the sheet used for nesting

Sheet Height

Number

Default 500

Height of the sheet used for nesting

Sheet Gap

Number

Default 10

Spacing between sheets when laying them out

Edge Clearance

Number

Default 0

Distance from the edges of the sheet to the nested parts

Spacing

Number

Default 0

Minimum clearance between parts (kerf). Dilates each part mask.

Rotation Count

Number

Default 2

Discrete rotation poses per part. 1 = no rotation, 2 = fast and the best default, 4 and 8 sample finer. The arc they span is chosen per part: shapes that tile when flipped (wedges, triangles, L-brackets) get the full circle, shapes that nest by translation (arcs) get 0..π. More poses cost proportionally more time and rarely change the sheet count — raise only for strongly irregular parts.

Curve Tolerance

Number

Default 0.1

Precision for discretizing curves to polylines (mm). Smaller = more samples per curve.

Outputs

9

What the node gives out, to wire into other nodes.

Sheets

Curve

Sheet boundary curves. Rectangular outlines for each sheet used.

Geometries

Geometry

Nested geometries transformed to their final positions on sheets.

Move Vectors

Vector

Translation vectors for each input geometry. Unplaced geometries have zero vectors.

Rotation Angles

Number

Rotation angles in radians for each input geometry. Unplaced geometries have zero rotation.

Sheet IDs

Number

Sheet index for each input geometry. Unplaced geometries have value -1.

Geo IDs

Number

Original input geometry indices for each nested geometry.

Utilization

Number

Fraction of usable sheet area covered by parts (0-1), per sheet. Edge clearance excluded.

Remnants

Curve

Largest reusable empty rectangle per sheet (CAM remnant-stock detection).

Unplaced Reasons

String

One diagnostic string per unplaced part, or empty if all parts were placed.

Config

10

Settings on the node itself, changed in its panel.

Mode

String

Default BLF

BLF — fast greedy bottom-left | GA — genetic algorithm over order + rotation (best density, slow)

Hex Start

Boolean

Default true

When all parts are uniform-radius circles, place analytically into a hex grid (skips BLF/GA). Falls back silently for non-circle input.

Resolution

Number

Default 1

mm per pixel. Smaller = more accurate but slower + more memory. Auto-adapts upward for huge sheets (capped at 500px/side), so this only matters at face value for sheets ≤500mm/side.

QLM Passes

Number

Default 0

Post-pass compaction iterations. 0 = disabled (default — benchmarked to add no density over the lowest-top placement while roughly doubling run time). Raise to trade speed for a possible tighter pack on hard inputs.

Seed

Number

Default 123456

PRNG seed for GA. Same seed + input = bit-exact same output.

GA Population

Number

Default 6

GA population size

GA Max Generations

Number

Default 8

GA maximum generations. Each generation re-runs the full placement popSize times, so keep it modest — the GA is seeded from the BLF result and only searches for improvements on top of it.

GA Stagnation Cap

Number

Default 4

Stop GA after this many generations with no improvement. Low by default so runs where BLF is already optimal (the GA seed) finish quickly instead of grinding stagnant generations.

GA Mut. Swap Rate

Number

Default 0.1

GA order-mutation rate

GA Mut. Rotate Rate

Number

Default 0.1

GA rotation-mutation rate

This node has no documentation beyond its description and ports yet.

History

First documented in v2.1.21

Oct 20, 2026

Versions before it were published before changes were recorded.