For this homework I used a progressive global illumination method. Light is gathered at each vertex from a random sampling of the hemisphere. In the first pass, only direct lighting from the luminaire is gathered. On later passes, these patches are now lit and able to pass light to gathering vertices that sample them. The lighting is purely additive and will eventually be infinity after enough passes.
I ran the program twice using two different resolution models.
The low resolution model had 3268 triangles, and took about 5 minutes per pass on a Dual Xeon 1700, and was completely white after the 150th pass.
The high resolution model had 71458 triangles, and took about 36 hours per pass on the same machine. I only had enough time to compute 3 passes, but the third pass produced adaquate results.
Obviously the next step is to implement an acceleration grid. This would drastically improve the speed over my brute force approach of trying each and every triangle in the scene for the ray-triangle intersection test.