Raytracing in Python

"What I can not create, I do not understand."

                                                                                       - Richard Feynman

I've always wanted to write a raytracer in C++ but with my professional experience in Python it seems to be much more productive to do it in Python. In just a few hours of coding over two evenings it's possible to get a simple tracer rendering spheres and applying simple lighting and materials in just 200 lines of Python! I pretty much didn't regret choosing Python for experimenting with this :)

Over time I've come to add new stuff bit-by-bit and the current engine supports the following,