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-polygonGroup
True Shape Nesting
Plugin
NestingKeywords
Nesting Bitmap Polygon
True Shape Nesting
9
What the node takes in, from wires or typed values.
Origin
Default [0,0,0]
Origin point for sheet placement
Geometries
List of geometries to be nested. Any shape — curves, concavity, holes handled natively.
Sheet Width
Default 500
Width of the sheet used for nesting
Sheet Height
Default 500
Height of the sheet used for nesting
Sheet Gap
Default 10
Spacing between sheets when laying them out
Edge Clearance
Default 0
Distance from the edges of the sheet to the nested parts
Spacing
Default 0
Minimum clearance between parts (kerf). Dilates each part mask.
Rotation Count
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
Default 0.1
Precision for discretizing curves to polylines (mm). Smaller = more samples per curve.
9
What the node gives out, to wire into other nodes.
Sheets
Sheet boundary curves. Rectangular outlines for each sheet used.
Geometries
Nested geometries transformed to their final positions on sheets.
Move Vectors
Translation vectors for each input geometry. Unplaced geometries have zero vectors.
Rotation Angles
Rotation angles in radians for each input geometry. Unplaced geometries have zero rotation.
Sheet IDs
Sheet index for each input geometry. Unplaced geometries have value -1.
Geo IDs
Original input geometry indices for each nested geometry.
Utilization
Fraction of usable sheet area covered by parts (0-1), per sheet. Edge clearance excluded.
Remnants
Largest reusable empty rectangle per sheet (CAM remnant-stock detection).
Unplaced Reasons
One diagnostic string per unplaced part, or empty if all parts were placed.
10
Settings on the node itself, changed in its panel.
Mode
Default BLF
BLF — fast greedy bottom-left | GA — genetic algorithm over order + rotation (best density, slow)
Hex Start
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
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
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
Default 123456
PRNG seed for GA. Same seed + input = bit-exact same output.
GA Population
Default 6
GA population size
GA Max Generations
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
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
Default 0.1
GA order-mutation rate
GA Mut. Rotate Rate
Default 0.1
GA rotation-mutation rate
This node has no documentation beyond its description and ports yet.
First documented in v2.1.21
Oct 20, 2026
Versions before it were published before changes were recorded.