Based on tinyraytracer + tinykaboom articles by Dmitry V. Sokolov.
Dependencies are limited to
- rayon for multithreading, which can be easily removed;
- num-traits to make own implementation of vectors, based on const generics over fixed-size arrays.
Not using existing vector libraries is a conscious choice. It is also a conscious choice to manually generate ppm images instead of using handy image manipulation crates.