A CAD viewer that runs entirely in your browser. Drop a file on the viewer and it renders — the file is parsed locally and never uploaded to a server.
Supported formats
- STEP (.step, .stp) — the standard B-rep exchange format
- IGES (.iges, .igs) — older exchange format, still common
- BREP (.brep, .rle) — OpenCascade's native format
- STL (.stl) — triangle soup; loads in mesh mode
- OBJ (.obj) — mesh + material groups, mesh mode
Not supported: DWG and proprietary formats (SLDPRT, CATPart, IPT, F3D). Every major CAD tool can export STEP — that's the intended path.
How it works
The file is read into an ArrayBuffer, transferred to a
web worker, and parsed by
occt-import-js
(OpenCascade compiled to WASM). OCCT tessellates the B-rep geometry
into triangle meshes, which are returned as transferable buffers
and rendered with Three.js. The entire pipeline is client-side —
the only server involved serves these static files.
Shipped
- Parts panel — product structure, names, visibility toggles, click-to-focus
- Edge outlines — the classic CAD look
- Section plane — clip the model along X/Y/Z
- Face picking — click a B-rep face, see part, index, area
- Measurements — two-point distances with markers and a live label
- True B-rep edges — extracted from face topology, not mesh heuristics
- WebGPU rendering — with automatic WebGL2 fallback
- Section caps — the cut surface fills, part-colored
- Edge measurements — click an edge, get its length
- Mesh formats — STL/OBJ with honest feature degradation
Roadmap
- Exploded view — pull assemblies apart along an axis
- Exact units — read
SI_UNITfrom the STEP header - WebGPU compute — GPU-side analysis when a workload earns it
Following along
The build is documented as it ships. The devlog documents each milestone — subscribe via RSS.