As @ben mentioned, you can use Mayavi and then interactively change the lighting. A good idea is to click on the script button, then you can use these lines of code in your scripts (this is how I did for the Mayavi part here).
Another option is to use Matplotlib . Based on the example of shading , I managed to create a surface with a backlight.
See code below.
import numpy as np from mayavi import mlab import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D from matplotlib.colors import LightSource
This gives as results:
- MayaVi:

- Matplotlib:

source share