Coursework's not going to badly - behold the room!
This is all done in C++ and openGL. It currently supports axis aligned planes, that are subdivided to the correct complexity on start up. There's still a long way to go. Oh the black dot represents where I've put the light.
Also the frame counter can be ignored, as the frames are locked to 1/60th of a second. I need to update the FPS counter to handle this.