Developed in C++.
Created in 2014.
Recursive ray tracing.
Phong and Lambert illumination models for shading.
The camera, geometry and point lights are specified by an input file.
You can specify triangles and spheres.
You can transform the geometry at will, specifying the matrix stack before creating objects, as in standard OpenGL.
The objects have their own material properties, such as diffuse, specular, shininess, ambient and emission components.
The output image resolution is specified in the input file.