OpenCascade.js
The OpenCASCADE 3D CAD kernel, compiled to WebAssembly with full TypeScript bindings. Build solids, run booleans, fillet edges, mesh, and read/write STEP — in a browser tab, a Node CLI, or an LLM tool call. Trim the wasm to the symbols you need, or extend it with your own C++ — no fork required.
@taucad/opencascade.js@beta, render a box, export STEP. 4 minutes./llms.txt for the full surface, or any page as raw .mdx.Used by
V3 upgrades OCCT to V8 and modernizes the toolchain for the agentic, browser-first era.
This is not a maintenance bump. V3 retargets the bindings at coding agents and modern bundlers — the same wasm runs unchanged in a Vite tab, a Bun CLI, and a Cursor agent tool call.
First WebAssembly binding to track OCCT V8 — BRepGraph, modern differential property packages, NCollection size_t migration, Gordon surface construction.
Every page is an .mdx resource. /llms.txt indexes the surface. Suffix-free symbols read like the C++ docs — LLMs hit the right overload without a lookup table.
ESM single-file, Vite / Next / Bun ready, COOP/COEP-aware threading, multi-arch GHCR images so Apple Silicon and Linux build the same bytes.
What's new in V3
One wasm, one init() Promise. No CommonJS.
gp_Pnt, not gp_Pnt_3. Overloads dispatched in C++.
using disposablesEvery shape implements Symbol.dispose for scope-exit memory management.
1.24× geomean on mixed CAD. Opt in via /multi.