I was attempting to implement Babylon into our internal configuration tool, but stopped development because the CSG operations were too slow, and sometimes inaccurate. I was just wondering if there has been any improvement in this area in the last few months, or if this was something in the future plans. I wish I was a good enough programmer to help update the code, but I wouldn’t even know where to start!.
It is a nice feature request !!! we do not have any immediate plan regarding CSG so far.
I agree with @sebavan and I would definitely love to integrate a better library if there is one
I’ve heard that Open JS CAD is supposed to be good at CSG but haven’t tried it myself to confirm…
There is also the typescript sdf-csg by wwwtyro, “heavily based upon Inigo Quilez’s 3D SDFs article.” It is public domain and has the following road map notes:
- The current isosurface extractor generates poor results for edges and corners. Write or use a different one for better results.
- Isosurface extraction is slow. Speed it up (perhaps the SDF data could be used to skip large chunks of the grid?).
- The bounds of the SDF are determined analytically, and it’s a little buggy (e.g., when using the “smooth” operators), requiring the use of padding when generating the mesh. Some options:
- Fix the bugs.
- Determine the bounds numerically, using the value of the SDF to accelerate it.
- Add more primitives.
- Add more operators.
I’ve thought for some time that a web-assembly-based CSG would be apt (notably currently beyond my ability to contribute).
Seems manifold have first party wasm package and web demo, but output model does not have uv mapping
Very interesting:
OpenSCAD, IFCjs, Grid.Space, and OCADml have all integrated our Manifold geometry kernel! Why? Because its reliability is guaranteed and it’s 1,000 times faster than other libraries. See our usage and performance discussions for all the latest and to add your own projects & analyses.
constructors inspired by the OpenSCAD API, as well as more advanced features like smoothing and signed-distance function (SDF) level sets. You can also pass in your own mesh data
It is licensed under Apache License, Version 2.0, January 2004.