A library for performing Constructive Solid Geometry (CSG) operations on Three.js meshes.
THREE-CSGMesh is a JavaScript library that brings Constructive Solid Geometry (CSG) capabilities to Three.js. It allows developers to perform Boolean operations like union, subtraction, and intersection on 3D meshes programmatically. This enables dynamic creation of complex geometries by combining simpler shapes directly in the browser.
Three.js developers and web-based 3D application creators who need to generate or modify 3D geometries at runtime without external modeling tools.
It provides a straightforward, programmatic way to perform CSG operations within Three.js, eliminating the need for pre-modeled assets or external software for certain geometry combinations.
Conversion of a CSG library for use with modern THREE.js
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Implements Binary Space Partitioning trees for reliable CSG operations, ensuring accurate geometry combinations as described in the README.
Preserves material assignments and vertex color channels from input meshes, demonstrated in the CSGMulti demo with multiple material groups.
Adapted for use with contemporary Three.js versions, preventing integration issues with newer releases as highlighted in the documentation.
Supports complex meshes with multiple material groups during CSG operations, allowing for richer visual results without data loss.
CSG calculations, especially on complex meshes, can be slow and may cause frame rate drops in interactive applications, a common trade-off with BSP-based approaches.
Can produce non-manifold edges or inefficient triangulation, requiring post-processing for clean meshes suitable for rendering or export.
Only provides basic union, subtract, and intersect operations; lacks advanced features like edge beveling, smoothing, or parametric controls found in full 3D suites.