My senior thesis (link below) was/is a differential geometry visualization software package I developed at Brown with Prof. Banchoff over the course of four summers, 2000-2003.
It has since been applied to even more applications and labs in the past few years since I've worked on it. One of the latest sets is GridSpace.
My thesis writeup is here.
A selected lab/demonstration on the Gauss-Bonnet theorem is below.
This applet opens the following windows:
This is illustrated using a surface of revolution, in which the normal map is symmetric and hence can be more easily viewed with a purturbed cross-section. The parallel curves and their corresponding regions in the surface and normal map are colored purple, while the end caps are green. Regions on the surface and normal maps with positive curvature are light, while regions with negative curvature are dark.
In the normal map, each point is covered exactly once positively, making the total curvature of the surface 4*pi.
Try changing the distance of the parallel curves, R. What happens when the smaller parallel curve intersects itself? You can also change the curve X(t).