Point cloud to BIM, automatically
A SaaS I designed and built end to end. Upload a laser scan (E57, PLY or LAS) and get a 2D DXF floor plan and a 3D IFC building model, with a web viewer to check the result against the scan.
Drag to compare
On the left, the scan as the scanner saw it, coloured by depth. On the right, the model the pipeline generated from it, seen from the same camera. In the product this is a live 3D viewer: both halves share one camera, so orbiting and zooming can never drift apart.
Formats in: E57, PLY, LAS. Out: DXF floor plan, IFC model (as-levelled and as-scanned).

Point cloudGenerated IFC modelThe pipeline
Every stage runs from one script in a fixed order, and every number in the model is measured from the scan. Only the agent stage costs money; everything else is local geometry, so re-running the tail of the pipeline to test a change is free.
- Find the buildingMeasure what stands 0.9 to 2.2 m above the local ground, so open terrain and neighbours don't count as the building.
- Level the scanThree estimators compete to find which way is up. The winner must leave the floor flatter than it found it; the rotation is saved so the model can be turned back.
- Find floors and ceilingsFloors from the lowest surface each column of points ends at, ceilings from the highest flat one. Buildings with two or more storeys are cut and processed storey by storey.
- Split large sitesScans wider than about 55 m are cut into overlapping parts and merged back into one wall set, so size becomes a routing decision instead of a refusal.
- Trace the walls with an AI agentA vision-language agent traces wall centrelines on rendered slices. The harness scores every pass against the cloud and re-prompts with the actual miss, up to five times, keeping the best.
- Fit and measureEach wall moves onto the surface the scan shows. Thickness, floor level and wall height are measured from the points, never assumed.
- Doors and windowsGeometry decides where it can and colour decides where it can't, because glass returns points. Widths and heights are re-measured on a 2 cm grid.
- Export and scoreDXF floor plan and IFC model, plus an as-scanned copy in the customer's own coordinates. Recall, precision and F1 against the cloud decide whether a plan ships.




Rules that cost a day each
Measure, don't assume. Wall height, storey height, thickness, opening sizes, floor level and colour are all measured from the cloud. Every constant that survived turned out to be a bug.
A refinement must never lower the score. Each refinement is scored before and after on the same pair, and reverted when it loses.
Colour where geometry is silent, not everywhere. Used as an equal vote, colour put a window on every wall with a poster on it.
Live product: thescantobim.com. Upload a scan and get a plan back.
- Python
- Open3D
- IfcOpenShell
- Claude
- Next.js
- Three.js
- web-ifc
- FastAPI
- RunPod
- Stripe