Raytracer is, as the name implies, a raytracer engine made in Rust. School project from April 20th to May 17th, 2026. To be carried by teams of 3 people.
Goals
So, Raytracing engine.
We had the choice between C++ and Rust. We I chose Rust because I recently had a lot of fun with this language. Also my school puts a lot of restrictions on the use of C++ (encapsulate every non-std functions for libc, everything must be inside class, strong emphasis on design patterns..) making it less enjoyable overall.
Requirements
The most basic requirements were to render a scene with spheres and planes. Light had to be managed by an ambiant light and a directional light. We also had to implement a camera with position, orientation and field of view. The output had to be a ppm file.
As you can see, the requirements were pretty basic, but we had a lot of freedom on how to implement them and the subjects went way further than this. You can find the feature list and what we achieved in our README.
Results
We managed to implement a lot of features. I’m especially proud of my BVH tree (added on the last sunday ‘cause i had nothing else to do), the reflection and refraction system, the antialiasing via adaptative super-sampling, and the Network Clustering.
Here’s a render of the final scene we made, with all the features enabled:
