← open the viewer

// project

CAD Viewer

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_UNIT from 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.