The algebraic surface program consists of two parts: a web server which
actually calculates the points on the surface and a Java applet which
displays the surface and allow interactive investigation. The web server
forms part of the
LSMP program which Richard Morris wrote several years back. The client
side uses the JavaView
package by Konrad Polthier, Klaus Hildebrandt, Eike Preuß, and Ulrich
Reitebuch.
The algorithm for generating the surfaces is a little complicated and is
fully described in Richard Morris' paper
A new method for drawing Algebraic Surfaces. It basically works by
recursive subdivision of the domain and looks for singular points to help
resolve the topology. It makes heavy use of Bernstein polynomials which
allow a quick test of whether a surface has a component in a particular
region.
Bugs
The algorithm is far from perfect and there will always be surfaces where
it does not quite calculate the geometry correctly. These typically involve
higher order singularities and curves of self-intersection. Often better
models of these points can be obtained by increasing the coarse and fine
resolutions or by reducing the size of the domain. If you find any surfaces
where it does a particular bad job let
Richard Morris know and he'll see if he can tweak the algorithm a little
bit.
Download
The
official site also offers download of the program.