Child of #15: architectural / civil reconstruction path (room scans, BIM) #18

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. This is the architectural / civil / BIM path.

What "architectural" means here

Inputs from building / site scans:

  • Room scans (interior walls, floors, ceilings, doors, windows)
  • Exterior building scans (facades, roofs, columns, beams)
  • Topographic / site surveys (terrain, roads, utilities)
  • BIM-style outputs (IFC, Revit) are the goal, not editable feature CAD

Pipeline characteristics

  • Input class: point cloud dominated by planar regions (walls, floors, ceilings) with some cylindrical (columns, pipes) and irregular geometry (terrain, vegetation)
  • Primary primitives: planes (walls, floors, ceilings), boxes (rooms), cylinders (columns, pipes), terrain meshes
  • Output format: IFC for BIM, optionally 2D plan/elevation drawings derived from the 3D model
  • Feature detection: semantic segmentation (wall vs floor vs ceiling vs opening) is the goal, not parameter extraction
  • Scale: much larger than mechanical — entire rooms/buildings, often gigabytes of point data, octree required
  • Topology: rooms are watertight volumes; buildings are open shells (exterior)

What to design

  1. Semantic segmentation — given a room scan, label each planar region as wall/floor/ceiling/opening. Use vertical/horizontal orientation cues + adjacency to other planes (a plane adjacent to a floor and ceiling on opposite sides is a wall).

  2. Scale handling — point clouds are GBs. Design the octree streaming strategy, downsampling per region, and chunking for memory. The current load_point_cloud reads the whole cloud into memory — won't work for a building.

  3. Output —

    • IFC for BIM (Industry Foundation Classes, the open BIM standard)
    • Plan/elevation 2D drawings derived by projecting the 3D model (DXF or PDF)
    • Coverage report: fraction of input scan covered by extracted surfaces
  4. MVP — a single rectangular room with one door and one window. If we can produce IFC for that, the pipeline handles real interiors.

  5. Library options — for IFC: IfcOpenShell (python bindings exist). For 2D drawings: ezdxf. Both are mature and well-documented.

Scope

  • In scope: design doc for the architectural path. Defines semantic segmentation rules, scale handling strategy, output formats, MVP scope, library choices, test corpus.
  • Out of scope: implementing the architectural pipeline. Separate tickets after design approval.

Acceptance

  • Document at docs/STRATEGY-ARCHITECTURAL.md covering: semantic segmentation rules, scale handling (octree, streaming, chunking), output formats (IFC primary, 2D drawings secondary), MVP scope with specific test room, library selection (IfcOpenShell, ezdxf), test corpus
  • Identification of the scale-handling risk (this is likely the riskiest single piece — current code reads whole clouds)
  • Decision recorded in #15 as a link back to this child

Why this matters

A scan-to-CAD tool that only handles mechanical parts misses the largest market segment (architecture / civil / BIM). Without a separate design for the architectural path, the mechanical pipeline will be stretched to fit and produce meaningless results on building scans (every wall becomes a 'hole' because it's a large vertical plane).

## Parent Part of #15 — refine pc2cad strategy. The end-to-end pipeline forks into three reconstruction paths. This is the architectural / civil / BIM path. ## What "architectural" means here Inputs from building / site scans: - Room scans (interior walls, floors, ceilings, doors, windows) - Exterior building scans (facades, roofs, columns, beams) - Topographic / site surveys (terrain, roads, utilities) - BIM-style outputs (IFC, Revit) are the goal, not editable feature CAD ## Pipeline characteristics - **Input class:** point cloud dominated by planar regions (walls, floors, ceilings) with some cylindrical (columns, pipes) and irregular geometry (terrain, vegetation) - **Primary primitives:** planes (walls, floors, ceilings), boxes (rooms), cylinders (columns, pipes), terrain meshes - **Output format:** IFC for BIM, optionally 2D plan/elevation drawings derived from the 3D model - **Feature detection:** semantic segmentation (wall vs floor vs ceiling vs opening) is the goal, not parameter extraction - **Scale:** much larger than mechanical — entire rooms/buildings, often gigabytes of point data, octree required - **Topology:** rooms are watertight volumes; buildings are open shells (exterior) ## What to design 1. **Semantic segmentation** — given a room scan, label each planar region as wall/floor/ceiling/opening. Use vertical/horizontal orientation cues + adjacency to other planes (a plane adjacent to a floor and ceiling on opposite sides is a wall). 2. **Scale handling** — point clouds are GBs. Design the octree streaming strategy, downsampling per region, and chunking for memory. The current `load_point_cloud` reads the whole cloud into memory — won't work for a building. 3. **Output** — - IFC for BIM (Industry Foundation Classes, the open BIM standard) - Plan/elevation 2D drawings derived by projecting the 3D model (DXF or PDF) - Coverage report: fraction of input scan covered by extracted surfaces 4. **MVP** — a single rectangular room with one door and one window. If we can produce IFC for that, the pipeline handles real interiors. 5. **Library options** — for IFC: IfcOpenShell (python bindings exist). For 2D drawings: ezdxf. Both are mature and well-documented. ## Scope - **In scope:** design doc for the architectural path. Defines semantic segmentation rules, scale handling strategy, output formats, MVP scope, library choices, test corpus. - **Out of scope:** implementing the architectural pipeline. Separate tickets after design approval. ## Acceptance - Document at `docs/STRATEGY-ARCHITECTURAL.md` covering: semantic segmentation rules, scale handling (octree, streaming, chunking), output formats (IFC primary, 2D drawings secondary), MVP scope with specific test room, library selection (IfcOpenShell, ezdxf), test corpus - Identification of the scale-handling risk (this is likely the riskiest single piece — current code reads whole clouds) - Decision recorded in #15 as a link back to this child ## Why this matters A scan-to-CAD tool that only handles mechanical parts misses the largest market segment (architecture / civil / BIM). Without a separate design for the architectural path, the mechanical pipeline will be stretched to fit and produce meaningless results on building scans (every wall becomes a 'hole' because it's a large vertical plane).
Mark closed this issue 2026-06-20 05:31:51 +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#18
No description provided.