Geometric ray tracing



Is there anyone out there that is both semi-versed in geometric ray tracing and wants to write a good ray tracing library?

To be clear, I’m not talking about ray tracing in graphics but more about ray tracing in physics, and geometric at that (at least to start with). While these two fields overlap a lot (especially lately with all the “real ray tracing” interest in the graphics world) the main differences are the goals (modeling accurate trajectories and phenomenon versus rendering a realistically looking image).

There are a few efforts out there that already fulfill parts of what a ray tracing package should be able to do. The most prominent one is DynamicalBilliards.jl. But none are a ray tracer. I’m therefore considering investing some time in adding some ray-tracing-functionalities to DynamicalBilliards.jl (see #dynamics-bridged on slack for more background).

DynamicalBilliards.jl's main author, @Datseris, is super stocked and enthusiastic about all of this, which makes this whole endeavor even more fun. What would be even better though, is if anyone here is into geometric/wave optics and wants to build an awesome ray tracing library…

The main idea for now is to just add functionalities to DynamicalBilliards.jl since it’s so well suited for this, and if down the road we need to split to our own library then we’ll deal with that then.

Thoughts, comments, suggestions?


That would be nice !
I wrote that kind of ray tracer in python (geoptics),
with an emphasis on interactivity, and was contemplating moving to julia.

DynamicalBilliards.jl could be a great for that, good idea !

Being a julia newbie, I could only help with the physical stuff and transfer the little know-how gained in geoptics. A good starting point could be its propagate method.
Please let me know if the algorithm needs any clarification.

Finally, there are other physics oriented ray tracers listed in


Very cool! I think we’d want to first get all the parts right before moving into GUI interactivity (but gladly later on). Julia-wise I think we can help each other implement stuff in an efficient way, algorithm-wise I’ll gladly accept any help you can give. I personally, coming from vision in animals, would like to include the freaky optics from biology (non-spherical surfaces, multiple half transparent retinas, optical systems without a clear cardinal point, off axis asymmetrical systems, GRIN lenses, polarization, wavelength, etc).

Come join the issues in DynamicalBilliards.jl and/or the #dynamics-bridged on slack!