grtrace - General Relativity rayTracer
This was a computer graphics/physics simulation project I worked on with Grzegorz Uriasz in high school. It's a raytracer that takes into account general relativity effects when calculating light ray paths. In short, it let us generate simulated pictures of black holes and other massive spherical objects described by various GR metrics, we implemented support for stationary, rotating and charged black holes. The raytracer can also simulate gravitational redshift for monochromatic light rays.
The entire raytracer is multithreaded, as generating an image using this image is an embarassingly parallel problem and the task can easily be split between any number of CPUs up to the number of pixels to generate. We have used the D programming language, which led to a quite performant simulation while being easy to quickly prototype with. Apart from the raytracer there is a visual debugger/inspector tool that evolved from a way to understand bugs in the code to an educational tool allowing us to learn more about GR by looking at interactions of light with objects from various perspectives.