PoVRay is a freely available, text-based raytracer. It features a complete programming environment, which makes it an ideal tool for mathematical visualization.

On this site, there are (essentially) two types of PoVRay files. A few are self-contained and render a parametrized surface by creating a 3D mesh on the fly. This uses code that works for any parametrized surface, and is useful is an explicit formula for the parametrization is known. It also allows to easily adjust parameters. To do this, you should get acquainted with the basics of PoVRay scene files.

Most PoVRay sources come in two parts: A small scene file, (almost) always called mathematica.pov, and a large data file, called dummy.pov. The latter is zipped, you need to uncompress it before using. Some of them are (unzipped) over 100MB large.

The dummy.pov files are exported using the Mathematica notebooks; you can do the same if you want other examples or vary parameters. They contain PoVRay triangle meshes, cylinders for the edges, and spheres for the vertices. You will rarely need to look at these files. They also contain variables that are being set in the mathematica.pov scene file, like the radii of the cylinders and spheres, which you might want to change. This mathematica.pov file sets a standard scene. I usually center the surface in a unit cube at the origin and place the camera four units in front of it. Then all textures are defined (it is addictive to play with this), and the data from dummy.pov are loaded. The last part places to loaded objects, sometimes in several translated copies. By default, I render square images (and crop later), so in most cases you should set the PoVRay render settings to a square image.

Again, as usual, everything is text based and quite harmless, but use at your own risk, and share your results.