Ok, I forgot my attachments would be stripped. Links:
Output of surface3d_demo.py (should explain why I want this patch)
Edited mpl source... just proof of concept... still has to be cleaned up.
Also, upon looking at colors.LightSource, I think this doesn't really need to be changed for 3D except it would only work for regularly spaced data... might be a nice enhancement to supply the X and Y arrays as well as Z so it can calculate gradients for irregularly spaced grids.