Feature detection taxonomy: chamfers, fillets, blind/counterbored/threaded holes, lofts #85

Open
opened 2026-10-10 17:17:00 +00:00 by Mark · 0 comments
Owner

Feature detection taxonomy — render-compare extraneous gates as acceptance criteria

The fitter→compose pipeline now reconstructs the strategy corpus with coverage and Chamfer gates passing, but extraneous_fraction fails on unmodeled machining features. Each class below needs dedicated detection + CSG semantics. Full notes in docs/plans/2026-10-08-fitter-solid-primitives.md §"Feature detection taxonomy".

Current residuals (acceptance criteria):

  • strategy_l_bracket: extraneous 0.115 (gate 0.05) — chamfer bands + inner-corner fillet
  • strategy_plate_with_hole: extraneous 0.221 (gate 0.05) — chamfer on top/bore edges

Taxonomy (priority order):

  1. Chamfers — slanted plane bands between two orthogonal faces; CSG wedge subtract
  2. Fillets/roundovers — missing-material wedge at face joins + cylindrical patch; CSG fillet
  3. Through holes/bores — mostly DONE (sweep + axial middle-mass + planarity gates); needs full-cylinder RANSAC for non-cap-orthogonal bores (fitter loses them to junk torus/sphere wins)
  4. Blind holes — currently rejected by the 40% span gate; needs blind-stop (flat bottom cap) detector
  5. Counterbores/countersinks — concentric candidates already emerge from the sweep; currently deduped — should compose as stepped holes
  6. Threaded holes — plain bore + metadata (no helical CSG)
  7. Lofts/blends — section-profile stitching; new body kind, no CSG

Also in scope for this effort: fitter-side cylinder recovery so the sweep isn't the sole hole finder.

## Feature detection taxonomy — render-compare extraneous gates as acceptance criteria The fitter→compose pipeline now reconstructs the strategy corpus with coverage and Chamfer gates passing, but `extraneous_fraction` fails on unmodeled machining features. Each class below needs dedicated detection + CSG semantics. Full notes in `docs/plans/2026-10-08-fitter-solid-primitives.md` §"Feature detection taxonomy". **Current residuals (acceptance criteria):** - `strategy_l_bracket`: extraneous 0.115 (gate 0.05) — chamfer bands + inner-corner fillet - `strategy_plate_with_hole`: extraneous 0.221 (gate 0.05) — chamfer on top/bore edges **Taxonomy (priority order):** 1. **Chamfers** — slanted plane bands between two orthogonal faces; CSG wedge subtract 2. **Fillets/roundovers** — missing-material wedge at face joins + cylindrical patch; CSG fillet 3. **Through holes/bores** — mostly DONE (sweep + axial middle-mass + planarity gates); needs full-cylinder RANSAC for non-cap-orthogonal bores (fitter loses them to junk torus/sphere wins) 4. **Blind holes** — currently rejected by the 40% span gate; needs blind-stop (flat bottom cap) detector 5. **Counterbores/countersinks** — concentric candidates already emerge from the sweep; currently deduped — should compose as stepped holes 6. **Threaded holes** — plain bore + metadata (no helical CSG) 7. **Lofts/blends** — section-profile stitching; new body kind, no CSG **Also in scope for this effort:** fitter-side cylinder recovery so the sweep isn't the sole hole finder.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Mark/pc2cad#85
No description provided.