Rectangular Nesting
True Shape Nesting
Nesting Bitmap Polygon
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.
Details
ID
nesting-true-shape-nesting-nesting-bitmap-polygon
Name
Nesting Bitmap Polygon
Group
True Shape Nesting
Package
Nesting
Keywords
Input ports
| Name | Type | Description | Default Value |
|---|---|---|---|
| Origin | Vector | Origin point for sheet placement | [0,0,0] |
| Geometries | Geometry | List of geometries to be nested. Any shape — curves, concavity, holes handled natively. | |
| Sheet Width | Number | Width of the sheet used for nesting | 500 |
| Sheet Height | Number | Height of the sheet used for nesting | 500 |
| Sheet Gap | Number | Spacing between sheets when laying them out | 10 |
| Edge Clearance | Number | Distance from the edges of the sheet to the nested parts | 0 |
| Spacing | Number | Minimum clearance between parts (kerf). Dilates each part mask. | 0 |
| Rotation Count | Number | Discrete rotation poses sampled 0..π. 1 = no rotation, 4 = 45° steps, 8 = 22.5°. | 4 |
| Curve Tolerance | Number | Precision for discretizing curves to polylines (mm). Smaller = more samples per curve. | 0.1 |
Output ports
| Name | Type | Description |
|---|---|---|
| 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 ports
| Name | Type | Description | Default Value |
|---|---|---|---|
| Mode | String | BLF — fast greedy bottom-left | GA — genetic algorithm over order + rotation (best density, slow) | BLF |
| Hex Start | Boolean | 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 | mm per pixel. Smaller = more accurate but slower + more memory. Auto-adapts upward for huge sheets. | 4 |
| QLM Passes | Number | Post-pass compaction iterations. 0 = disabled. 1-5 typical. | 3 |
| Seed | Number | PRNG seed for GA. Same seed + input = bit-exact same output. | 123456 |
| GA Population | Number | GA population size | 10 |
| GA Max Generations | Number | GA maximum generations | 20 |
| GA Stagnation Cap | Number | Stop GA after this many generations with no improvement | 8 |
| GA Mut. Swap Rate | Number | GA order-mutation rate | 0.1 |
| GA Mut. Rotate Rate | Number | GA rotation-mutation rate | 0.1 |