Press 'S' to split every tri into 4 new ones. Press 'H' to toggle heatmap/grayscale. Press 'M' to toggle object rotation/light-source movement. Mouse to rotate object/move light-source. Space to terminate after hi-res rendering.
Averaging the (scaled) surface normal of every connected vertices to get a bearing on the shading. Looks promising? Also implemented some more controls to examine the effect and cleaned-up the code a bit! :-)