Hi all, as part of my SIMPLE project I have developed two libraries that some of you might find useful. I am very keen to share them because whatever improvement you can make to it will benefit my projects as well.
The first library I want to mention is called Geometry3D, and has several 3D Geometry functionalities. E.g.,
-
Points
-
Vectors
-
Segments
-
Transforms
-
Triangles
-
Triangulation (e.g., sort of meshing... but not very high quality for finite element methods, probably)
-
Polygons
-
Ray/geometry intersection algorithms
The second library—called Rendering—utilises Geometry3D
in order to provide some ray-tracing capabilities. This library is less mature but I have already managed to do some renderings.
Language
They are written in Rust... you might or might not like this, but I love that language
Note
The whole point of these libraries is to help improve Building Performance Simulation... so, for example, the rendering lib should not only allow rendering cool images, but radiometrically correct ones. That means I am not a fan of cheating (e.g., invisible light sources for illuminating corners) or short cuts (e.g., let's simplify some calculation through a heuristic). Despite this, the ray-tracing-based algorithms for lighting calculations are similar to those in animation and rendering, so I believe we can collaborate a lot!
Looking forward to reading your feedback!