Web CAD library built on OpenCascade with a layered architecture and kernel abstraction layer.
brepjs organizes its API into focused sub-path imports to reduce autocomplete noise:
| Sub-path | Description |
|---|---|
brepjs |
Full API — all symbols re-exported |
brepjs/core |
Result type, errors, vectors, planes, branded shape types |
brepjs/topology |
Primitives, booleans, modifiers, curves, faces, meshing, healing |
brepjs/operations |
Extrude, loft, sweep, patterns, assemblies, history |
brepjs/2d |
Blueprints, 2D curves, 2D booleans |
brepjs/sketching |
Sketcher, Drawing, sketch-to-shape operations |
brepjs/query |
Edge, face, wire, vertex finders |
brepjs/measurement |
Volume, area, length, distance, curvature |
brepjs/io |
STEP, STL, IGES, OBJ, glTF, DXF, 3MF, SVG |
brepjs/worker |
Web Worker protocol and client |
import { box, fuse, fillet, unwrap, edgeFinder } from 'brepjs/topology';
import { cylinder } from 'brepjs/topology';
const myBox = box([0, 0, 0], [30, 20, 10]);
const cyl = cylinder(5, 15, [15, 10, -2]);
const fused = unwrap(fuse(myBox, cyl));
const filleted = unwrap(fillet(fused, edgeFinder().inDirection('Z').findAll(fused), 2));