STL in, editable solid out

cad_mesh_to_brep takes a triangle mesh — an STL, OBJ or 3MF with nothing behind it but facets — and gives back a real, watertight B-rep solid: analytic faces where the part has them, parametric features where it can, and a measured comparison against the mesh it came from. Below: eleven kernel-built ground-truth parts plus three real STL files, every number measured against the source mesh, never typed in.

Every number below is reproducible. node benchmarks/recon/run.js in the repo produces the same summary this page renders, and the build fails if a case regresses.
Generated: — Cases: — Closed: — Meeting target: —

See both at once live

Result: — Faces: — Volume error: — Surface distance: —

Input mesh in x-ray over the reconstructed solid — drag to orbit, toggle Body / Input / Both, slide the clip plane to look inside. Profiles draws the input mesh's section outline over the solid's at each station, with the widest gap between them in mm.

Open a viewer in its own tab

nativecad-plate · nist · box · bracket · chamfered-plate · scanned-bracket · shaft · elbow · frustum-sphere-cap · hopper · lofted-blade · cored-block · revolved-vase · ingenuity-mars-helicopter

What each metric means

Reading the table

Closed cases measured

Every case below comes back as one watertight, editable solid. Before→after compares this row to the scoreboard as it stood before the current release — green is an improvement, — a case that did not exist yet.

CaseResultFacesComponentsVolume err % vs meshvs truth before → after Norm. HausdorffMin IoUIoU2d (worst station) Outline Δ mmTargetms

Open cases named, not hidden

A case that does not close yet is listed here rather than dropped from the scoreboard.

The three real STL files measured

Real exports, not kernel-built fixtures. nist.stl also has an independent STEP twin, so its volume is checked against real ground truth, not only against the mesh.

CaseResultVolume err % (vs mesh) Volume err % (vs STEP truth)Norm. Hausdorff IoU2d (worst station)Outline Δ mm TargetNotes
nativecad-plate——— — ———Plate with a bolt pattern; the mesh is the only source.
nist——— — ———117-face AP242 conformance article (56 planes, 57 cylinders, 4 cones); the STEP twin's volume is the truth.
ingenuity-mars-helicopter——— — ———A multi-part scan of several hundred regions — on the board, not hidden.

Real parts from Intact Solutions' PyIntact examples measured

Intact Solutions' public example set; the optimised designs are LevelOpt's own reference outputs. Real exports, fed to the reconstruction exactly as the other real STLs are — a case that does not close is listed underneath rather than dropped.

CaseResultFacesVolume err % (vs mesh) Norm. HausdorffIoU2d (worst station) Outline Δ mmTargetms

This run carried no Intact example parts.

More demos

All demos →

Build your own part with NativeCAD

Free for education and makers with a registered key · $200 per seat per year · Kernel SDK for products.