I am having a lot of fun working through the book The Raytracer Challenge. Basically it is a course on Test Driven Development made fun. Armed with a series of tests, we eventually end up with a ray tracing renderer of 3D scenes.
The book is language agnostic, and I am currently developing solutions using C++ and Kotlin. Like I said, it’s a lot of fun, and the book is highly recommended.
The green sphere in the image above was the first rendering from my code after implementing Lights and material effects.