List of programmatic 3D modelling tools
From apm
Revision as of 14:24, 2 September 2024 by Apm (Talk | contribs) (→Code: DSL libraries for CSG, CSG software, ...)
Up: Constructive solid geometry
Code: DSL libraries for CSG, CSG software, ...
- B-Rep – OpenSCAD – OpenSCADs website – (uses CGAL under the hood – C/C++)
Interestingly OpenSCAD ...
- ... is a 100% pure/denotative/side-effect-free by design. But as of 2021 it ...
- ... is not a higher order functional language with functions as "first class citizens".
There are quite a few copycat projects of OpenSCAD around.
Unfortunately they all seem to fail to implement a hard guarantee on code purity – (inheriting impurity from their substrate language).
Beyond OpenSCAD of the software artifacts listed here only implicitcad can give hard guarantees on purity (there enforced by types).
Related: Relations of APM to purely functional programming
- B-Rep – csg.js – (javascript library)
- F-Rep – libfive (formerly AO) by Matt Keeter (on github) — (guile scheme software)
- F-Rep – Foglemans SDF library — (python library)
- F-Rep – implicitcad – (haskell DSL)
- F-Rep – MiniSageCAD experiment on Thingiverse (implemented in the sage computer algebra system)
- F-Rep (2D) – rendering engine of the enso programming language (rust library)
- F-Rep SDF-code on shadertoy – many examples there
– Raymarching - Primitives ~ by iq
– shadertoy: tag=sdf
- F-Rep ConjureSDF https://blenderartists.org/t/conjuresdf-smooth-non-destructive-booleans/1478671 (closed source ATM 2024-08)
F-Rep – Bauble
- Live in browser: https://bauble.studio/
- About bauble: https://bauble.studio/about/
- Sourcecode on github: https://github.com/ianthehenry/bauble
- Authors blog: https://ianthehenry.com/works/
Misc
- CadQuery QC-editor https://github.com/CadQuery/CQ-editor
- Ao (deprecated predecessor of libfive) https://www.mattkeeter.com/projects/ao/
- Ao (deprecated predecessor of libfive) https://github.com/mkeeter/ao-guile-repl
- elm-csg (elm, CSG) (github)
- CGAL (C++) (landing page) (wikipedia)
- OpenCASCADE (B-Rep, C++) (wikipedia)
- JSCAD (github)
- blender python scripting
- blender animation nodes generated via scripting
- BRL-CAD (C++, CSG) (landing page) (wikipedia)