(full source available here)
Copper3D is a simple software wireframe renderer. It was primarily an experiment on my part to see whether I could build up a full 3D rendering pipeline from scratch without consulting any references. I had some advance knowledge about some of the tricks involved (e.g. homogeneous coordinates), so I wasn't completely developing the math from scratch, but I did rederive all of the camera perspective tricks necessary to get the graphics working. Additionally, I restricted myself by allowing only pixel-plotting and clearing the screen as primitive operations. Consequently, I got a chance to play around with line-drawing algorithms, which I hadn't seen before.
The current incarnation of Copper3D does not have all of the features I initially set out to get working - there's no solid polygon rendering or z-buffering, for example - but overall I'm happy with what I ended up creating. I learned a lot putting it together, and it's nice seeing all of the pieces coming together. I will probably keep up work on Copper3D as I continue learning more about graphics programming. In the meantime, if you're interested in checking out the full C++ source, I'd love to hear your comments and feedback!