Well well, where do I start. This was one of the most fun projects I have done to date. In the course Adv. Global Illumination and Rendering, TNCG15 we got the task to build a physically based renderer through Monte Carlo Raytracing from the ground up. We developed our own scene graph and used the library GLM for linear algebra algorithms.
We never managed to implement an Oren-Nayar reflectance model or support for transparent objects. That as well as parallelizing the computations and implementing photon mapping to make the renderer real-time are improvements I hope to do in the future.