I wrote a simple raytracer from scratch for one of my computer graphics courses at Berkeley. It supports triangle and sphere primitives, Phong shading, shadows, reflections, and PPM file format output. Here are some snapshots of selected scenes:
This is a simple scene (above) composed of a number of spheres with half a dozen lights providing the illumination. I composed this scene primarily to show that shadows are computed accurately.
In this scene (above), I have rendered several reflective spheres above a ground plane with a mirror in the background. A single white light illuminates the scene from above
This scene (above) is identical to the previous image except I have replaced a couple of the spheres with ellipsoids. Rather than implement a completely new primitive, the ellipsoids are generated by simply adding a transformation option to the sphere class.
This final image (above) is composed of an icosahedron surrounded by several spheres. All of the shape surfaces are reflective.