csg.js is a JavaScript library implementing constructive solid geometry (CSG) operations on polygonal meshes using BSP trees. With CSG, you build complex 3D shapes by combining primitives using Boolean operations like union, subtract, and intersect. The library focuses on clarity and correctness: its implementation is intentionally concise and readable so developers can understand the algorithm, while still correctly handling tricky edge cases such as overlapping coplanar polygons. A WebGL-based demo shows how two solids can be combined interactively in the browser, making it a great educational tool for learning CSG concepts. The API allows you to create primitives (cubes, spheres, etc.) and then combine or transform them programmatically, producing new mesh geometry for rendering or export. Because it is dependency-light and pure JavaScript, csg.js can be integrated into custom modeling tools, CAD-like apps, games, or procedural modeling pipelines running in the browser or Node.
Features
- CSG operations (union, subtract, intersect) on polygonal meshes using BSP trees
- Utility methods to construct primitives like cubes and spheres as starting solids
- Correct handling of edge cases such as overlapping coplanar polygons
- Pure JavaScript implementation suitable for browser or Node.js environments
- Demo and docs that visualize operations with WebGL for interactive learning
- Readable, educational codebase often used as a reference for CSG algorithms