Thought I would just put the code of this up. It was just a small demo I wrote a few years ago while playing with OpenGL. If I remember correctly, it uses vertex buffers... and per-vertex lighting. Man, that's embarassing.
The transparency was interesting to implement, since it required rendering the surfaces from back to front. I just put in something simple (and slow) to do that for me, but in any future projects, I will definitely look into the design of a proper scene management system.