If you're more inclined to things like math and physics (hey, isn't everybody? No?? Oh, sorry for saying the "P" word), then writing these engines would be more up your alley. For my project I added to the engine which was started in Assignment 4. By the time it was all said and done, I had a ray tracer which supported constructive solid geometry (CSG), reflection, refraction (to a certain extent), and solid texture mapping. All that plus a whole wall covered with empty cans of Coke (and the corresponding ulcer).
For those interested in details of implementation, the engine was built according to Gn specifications (with additions for my extra functions). Thus, it's coded in C, and scenes can be generated either in C or as Gn/Tcl scripts.