James P. O'Shea
Graduate Student

University of California, Berkeley
Vision Science Program
Visualization Lab
Banks Lab
505 Minor Hall
University of California, Berkeley
Berkeley, CA 94720-2020

joshea (at)


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.