OptionalclassificationHorizontal / vertical classification tolerance. Default 10 degrees.
OptionalcylinderRANSAC draws per candidate. Default 256.
OptionalcylinderVoxels each draw is scored on. Default 2,048.
OptionaldetectLook for cylinders (columns, pipes) among non-planar voxels. Default true.
OptionalmadRobust refit band in MADs. Default 2.5.
OptionalmaxRegions whose normals turn faster than this (1/radius) are curved. Default 1 per metre.
OptionalmaxLargest non-planar groups examined. Default 1,024.
OptionalmaxOptionalmaxGrowth and merge angle tolerance. Default 10 degrees.
OptionalmaxGrowth and merge distance tolerance. Default 0.02 m.
OptionalmaxLargest planes kept. Default 10,000.
OptionalmaxSeed voxels have curvature at most this, or at most the curvature of the flattest 5 % of voxels when noise lifts even flat surfaces above it. Default 0.02.
OptionalmaxVoxel budget; past it the voxel size doubles. Default 1,500,000. Memory is roughly 180 bytes per voxel: the 8,000,000 maximum (with 2 normal rings) peaks near 1.4 GB, more than a browser tab should spend.
OptionalminMinimum circumference covered. Default 90 degrees.
OptionalminShare of a group a candidate must fit. Default 0.6.
OptionalminMinimum length along the axis. Default 0.3 m.
OptionalminAccepted cylinder radius range. The minimum defaults to two voxel edges (null), the maximum to 2 m.
OptionalminOccupied voxels (self included) a normal needs. Default 6.
OptionalminSmaller planes are dropped. Default 0.25 m^2.
OptionalnormalNormal neighbourhood: 1 = 26 neighbours (default), 2 = 124.
OptionaloriginAdded to every output coordinate. Default [0, 0, 0].
OptionalregionOnly points inside this box take part.
OptionalscannerWhen given, every plane normal faces the scanner.
OptionalupUp direction of the positions' frame. Default [0, 0, 1].
OptionalvoxelAveraging voxel edge. Default 0.03 m; 0.005..=1.
Every field is optional; omitted fields take the Rust defaults below.