find_islands
Locate regions in an STL layer that have nothing solid beneath them, identifying where a resin print needs supports.
Instructions
Find islands: regions that appear in a layer with nothing solid beneath them.
These are where a resin print needs supports. The model is scanned as it sits
in the STL: layer 0 is its lowest point, as if lying on the plate, and no
supports are considered. Positions are in the STL's own X/Y/Z (mm). Layers are
sliced layer_height apart on a px_mm grid; a region counts as supported if
solid lies within support_buffer_mm of it in the layer below. Detections that
start within cluster_mm (XY distance from the cluster's first detection) and
ten layers of each other are merged into one entry; 0 disables that. Entries
whose first_area_mm2 is under min_area_mm2 are then dropped, and the
max_islands largest by that area are returned, with truncated set if there
were more.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| px_mm | No | ||
| stl_path | Yes | ||
| cluster_mm | No | ||
| max_islands | No | ||
| layer_height | No | ||
| min_area_mm2 | No | ||
| support_buffer_mm | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| px_mm | Yes | ||
| layers | Yes | ||
| islands | Yes | Largest first_area_mm2 first | |
| bbox_max | Yes | ||
| bbox_min | Yes | [x, y, z] mm of the model, to check positions against | |
| warnings | No | ||
| elapsed_s | Yes | ||
| truncated | Yes | True when islands holds fewer than islands_total | |
| islands_total | Yes | Islands found after clustering and filtering | |
| plate_contacts | Yes | Layer-0 regions: on the plate, not islands | |
| raw_detections | Yes | Off-plate islands the tracker reported, before clustering and filtering | |
| total_area_mm2 | Yes | Unsupported footprint: first-layer areas of all islands_total islands (every merged detection), not just the ones listed | |
| layer_height_mm | Yes | ||
| support_buffer_mm | Yes |