I have been working on a browser based CAD system called BREP.io and wanted to share the current state of the project with the three.js community.
BREP.io is a parametric modeling environment that runs entirely in the browser. The system uses a topology layer built on top of triangle meshes, allowing the modeling workflow to operate in terms of faces, edges, and features while still using mesh based operations internally. This approach makes it possible to combine BREP style modeling with geometry that is well suited for real time browser rendering and computation. A recent Hackaday article described it as a system that lets traditional CAD operations work together with triangle meshes. (Hackaday)
All geometry operations run client side in the browser, including operations such as fillets, lofts, and multi body booleans. No geometry processing is offloaded to a backend. (Hackaday)
Current capabilities include:
Modeling features
-
Primitive solids (cube, cylinder, cone, sphere, torus, pyramid)
-
Feature operations such as extrude, revolve, sweep, and loft
-
Booleans, fillets, and chamfers
-
Linear and radial patterns
-
Transform and mirror operations
-
Mesh import for STL and 3MF
Sketch system
-
2D sketches with a constraint solver
-
Dimensions and geometric constraints for parametric editing
Assemblies
- Early support for 3D assembly constraints for positioning and relating parts
Infrastructure
-
A feature history pipeline where operations can be edited and recomputed
-
A topology system that tracks faces and edges on top of mesh geometry
-
Rendering and interaction built with three.js
The project is still evolving, but it is already usable as a modeling playground and as a place to experiment with parametric CAD workflows directly in the browser.
There was also a recent Hackaday writeup that gives a quick overview of the project.
Demo
https://brep.io
If anyone here is interested in the implementation details such as topology tracking, feature evaluation, or constraint solving, I would be happy to discuss them.





