Designing a Raytracer from scratch (work in progress)