I wrote a small raytracer just to have a bit of fun, just after reading a paper of Pixar about Renderman (1992). It is just two weeks work, but I had the time to implement the following features.
Raster space antialiasing
Time antialiasing
Camera exposition simulation
Surface shaders (procedural texturing and lighting)
Volume shaders (procedural volumetric effects, see first video)
Reflections, refractions, shadows
Able of raytrace spheres, cylindres, cubes, planes, cones, revolution objects, 3d julias and polygonal meshes.
Lame bump mapping
Here are some videos I made with this basic raytracer: