Child of #15: organic surface reconstruction path (sculpted/freeform) #16

Closed
opened 2026-06-17 18:25:49 +00:00 by Mark · 0 comments
Owner

Parent

Part of #15 — refine pc2cad strategy. The end-to-end pipeline forks into three reconstruction paths depending on the input scan class. This is the organic / sculpted / freeform path.

What "organic" means here

Inputs that are NOT mechanical or architectural:

  • Sculpted parts (consumer products, ergonomic handles, decorative objects)
  • Freeform surfaces with no planar/cylindrical structure (figurines, sculptures, organic tissue scans)
  • Reverse-engineered shapes where the goal is a faithful mesh-like CAD, not a feature decomposition

Pipeline characteristics

  • Input class: point cloud with continuous curvature, no obvious planar regions
  • Primary primitives: NURBS patches, subdivision surfaces, alpha-shape hulls (NOT analytic primitives)
  • Output format: smooth BREP / STEP with G2-continuous patches, optionally mesh (STL/OBJ) as preview
  • Feature detection: none — there are no features
  • Topology: open shells acceptable (organic scans often have holes / undersides)

What to design

  1. Detection heuristic — given an input point cloud, decide whether to route to organic vs mechanical vs architectural. Heuristic: if region-growing segmenter finds fewer than N (TBD) planar regions above a confidence threshold, route to organic.

  2. Surface fitting — for organic surfaces, fit B-spline patches to local neighborhoods with G2 continuity across patch boundaries. The freeform path is currently Milestone 5 in PLAN.md and was deliberately deferred. This child issue is the scoped work item for that milestone.

  3. Output —

    • STEP with NURBS surfaces (preferred)
    • Optionally an STL/OBJ preview for fast iteration
    • A coverage report: fraction of input points within tolerance of the fitted surface

Scope

  • In scope: design doc + spike for the organic path. Define the detection heuristic, surface fitting strategy (which library, which continuity target), output format, and acceptance criteria on synthetic organic scans (e.g., the Stanford bunny, a sculpted vase).
  • Out of scope: implementing the organic fitter. That's a separate ticket after the design is approved.

Acceptance

  • Document at docs/STRATEGY-ORGANIC.md covering: detection heuristic, surface fitting approach, library options (OpenCascade B-Spline, geomdl, pyNURBS), output formats, test corpus, MVP scope
  • Synthetic organic test scans identified (3–5 representative cases) and added to samples/ or fixtures repo
  • Spike estimate: time-boxed to one iteration to validate the detection heuristic and one fitter library
  • Decision recorded in #15 as a link back to this child

Why this matters

pc2cad's mechanical path is well-scoped (#11, #12, #13, #14 cover it). The organic and architectural paths are not. Without a design for organic, users with non-mechanical scans get the mechanical pipeline anyway and the output is meaningless (everything fits as a noisy cylinder).

## Parent Part of #15 — refine pc2cad strategy. The end-to-end pipeline forks into three reconstruction paths depending on the input scan class. This is the organic / sculpted / freeform path. ## What "organic" means here Inputs that are NOT mechanical or architectural: - Sculpted parts (consumer products, ergonomic handles, decorative objects) - Freeform surfaces with no planar/cylindrical structure (figurines, sculptures, organic tissue scans) - Reverse-engineered shapes where the goal is a faithful mesh-like CAD, not a feature decomposition ## Pipeline characteristics - **Input class:** point cloud with continuous curvature, no obvious planar regions - **Primary primitives:** NURBS patches, subdivision surfaces, alpha-shape hulls (NOT analytic primitives) - **Output format:** smooth BREP / STEP with G2-continuous patches, optionally mesh (STL/OBJ) as preview - **Feature detection:** none — there are no features - **Topology:** open shells acceptable (organic scans often have holes / undersides) ## What to design 1. **Detection heuristic** — given an input point cloud, decide whether to route to organic vs mechanical vs architectural. Heuristic: if region-growing segmenter finds fewer than N (TBD) planar regions above a confidence threshold, route to organic. 2. **Surface fitting** — for organic surfaces, fit B-spline patches to local neighborhoods with G2 continuity across patch boundaries. The freeform path is currently Milestone 5 in PLAN.md and was deliberately deferred. This child issue is the scoped work item for that milestone. 3. **Output** — - STEP with NURBS surfaces (preferred) - Optionally an STL/OBJ preview for fast iteration - A coverage report: fraction of input points within tolerance of the fitted surface ## Scope - **In scope:** design doc + spike for the organic path. Define the detection heuristic, surface fitting strategy (which library, which continuity target), output format, and acceptance criteria on synthetic organic scans (e.g., the Stanford bunny, a sculpted vase). - **Out of scope:** implementing the organic fitter. That's a separate ticket after the design is approved. ## Acceptance - Document at `docs/STRATEGY-ORGANIC.md` covering: detection heuristic, surface fitting approach, library options (OpenCascade B-Spline, geomdl, pyNURBS), output formats, test corpus, MVP scope - Synthetic organic test scans identified (3–5 representative cases) and added to `samples/` or fixtures repo - Spike estimate: time-boxed to one iteration to validate the detection heuristic and one fitter library - Decision recorded in #15 as a link back to this child ## Why this matters pc2cad's mechanical path is well-scoped (#11, #12, #13, #14 cover it). The organic and architectural paths are not. Without a design for organic, users with non-mechanical scans get the mechanical pipeline anyway and the output is meaningless (everything fits as a noisy cylinder).
Mark closed this issue 2026-06-20 16:58:29 +00:00
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#16
No description provided.