This is a program I wrote in Delphi quite a few years ago. I wanted to investigate the principles of 3D graphics so I decided to create this program to explore this area. All of the rendering is performed on a pixel-by-pixel basis using my own graphics routines. It is not meant to be a viable 3D engine or renderer, it's far too slow for that due to the fact it uses Delphi's VCL to access graphics memory. The program itself supports loading 3D objects from Wavefront OBJ files, vertex, wireframe and filled rendering modes (filled uses the Lambert shading model). It also includes Z-buffering, perspective projection and transformation of both the model and camera.