Plane fitting: improve RANSAC plane segmentation and coverage reporting #11
Labels
No labels
blocked:needs-decision
blocked:preflight
bug
in-progress
in-progress
lint-cleanup
needs-decompose
quickfix
triage-approved
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Mark/pc2cad#11
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context
Plane fitting is the foundation of pc2cad — every other primitive type depends on plane candidates being cleanly segmented. The current implementation:
This issue tracks general hardening of the plane path. Specific things to investigate:
FitConfig.tol_mode/tol_kare global.report["planar_segments"]exists but it's not clear what fraction of the scan is covered. Add aplanar_coverage_ratioand surface it in the JSON report.Scope
This is a hardening pass, not a rewrite. Improvements should be additive knobs (FitConfig fields + CLI flags) so existing behavior is preserved by default.
Acceptance
FitConfigfields for per-segment thresholds, minimum inlier count/ratio, with sensible defaults--plane-min-inliers,--plane-min-inlier-ratio,--plane-segment-tol-scalereport["planar_coverage_ratio"]added and documentedWhy this matters
pc2cad's analytic reconstruction quality is bounded by plane segmentation quality. Every other primitive (cylinder, cone) assumes planes are correctly partitioned before fitting. Better plane fit → better downstream primitives.
Cross-reference: substrate for #22
The hardened plane segmentation this issue delivers is the direct substrate for the new profile extraction work tracked in #22. Specifically:
The four acceptance items here (per-segment thresholds, inlier-ratio coverage reporting, minimum inlier count, adjacent-plane separation) are all prerequisites for #22 to produce a sketch from a real scan. When this issue lands, #22's planar input is well-defined.