Ray Trace 1, expanded to support reflective and refractive surfaces. Created for CS180.