Sharing a Geometry3D and Rendering libraries

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!

Comments

  • How do you include yourself to something like the blender VI-Suite?
    Isn't Radiance the choice for (exact) rendering.
    can you handle these:
    https://variancelighting.com/dial-and-relux-are-working-together-to-develop-a-new-data-format-for-lights-and-sensors-the-global-lighting-data-format-gldf-led-professional/
    For sure there is room for many applications and services.. but no need to reinvent the wheel? Anyway welcome in OSarch.

    germolinal
  • Hi! Thanks for your comment, I think it definitely deserves a response. Let me answer in two steps.

    First, I agree that we don't need to re-invent Radiance... But, to some extent, it has been reinvented. Radiance includes some genius innovations that helped the discipline of rendering and animation to move forward. However, at some point (I am thinking, specifically, in Eric Veach's dissertation about robust algorithms for rendering), the world of rendering moved past Radiance and we did not. Of course, they have worried more about whether the images look correct than whether they are correct; but that does not mean at all that the new algorithms they offer are incapable of offering radiometrically correct solutions to the light transport phenomena.

    The second response is more pragmatic: Radiance—and other big names I think we can renovate—were developed mainly decades ago, when few people knew how to code, best practices were not a thing, and Github and other platform weren't available as they are today. Additionally, these tools were not designed to talk to other tools... Since the whole point of SIMPLE is to allow integrated simulation, there is no much room for just reusing the code. Now, (again) I don't plan to reinvent the wheel, just to manufacture a modern version of it. These are physical simulation engines... their value lies more in the development of the problem and the equations they solve, and in their validation, than in the code itself. Tell me what to code and I am sure someone can code it... but, what do we code? These tools—and their documentation—contain everything we need to code and a lot of the code itself. We can draw on all that to develop a modern tool.

    Does this make sense?

    @lukas said:
    How do you include yourself to something like the blender VI-Suite?
    Isn't Radiance the choice for (exact) rendering.
    can you handle these:
    https://variancelighting.com/dial-and-relux-are-working-together-to-develop-a-new-data-format-for-lights-and-sensors-the-global-lighting-data-format-gldf-led-professional/
    For sure there is room for many applications and services.. but no need to reinvent the wheel? Anyway welcome in OSarch.

Sign In or Register to comment.