AlgoSurfer
Several views of a Klein surface (often called Klein bottle): principal directions, mean and Gaussian curvature, transparent view, surface view with reflectionsOverview
A real-time visualisation tool for implicit surfaces, i.e. isolevels of real-value functions f(x,y,z). It casts rays through each pixel and computes intersections with the surface.
Go to AlgoSurfer Demo | AlgoSurfer
Main features
- it displays any implicit surface, either predefined or user-written, in real time.
- it displays either the surface, its normals, its mean or Gaussian curvatures or its principal directions.
- you can choose different illumination models (basic, Phong) but also use transparent materials or reflecting materials
- you can navigate around the shape with the mouse
Predefined shapes
The tool offers several classical algebraic (Cayley Cubic, Whitney surface, etc) or implicit surfaces (Sierpinski cube, Kleinian variation, etc).

Writing your own implicit function
Just write it in the textbox like:
// Torus example
return (x2+y2+z2+a*a-b*b)*(x2+y2+z2+a*a-b*b)-4.*a*a*(x2+y2);
Obviously, you have access to x, y, z variables (and even a temporal t), as well as their squared and cubic variants (x2, x3, …). Use x2*x3 if you want x^5.
You can also access user-interface parameters a, b, c.
The code should be written in GLSL (C-like) and then press View Surface. If you do not know GLSL, the simplest way is to take
inspiration of the code written for predefined shapes.
Details
- you can change the viewed
isolevel(default is 0). scaleallows you to zoom in/out of the surface.center_x,center_y,center_zchanges the center of view- you may decrease
accuracyto get better details, at the price of increased computational burden (check fps above) singularitycontrols how singularity are detected, 1.0: large band 0.0: invisible.- you may change the
color_modelto change the color display of surfacesBasic: just the natural color as defined by what you are viewingPhong: Adds a simple Phong model with a front white lightPhong+lights: Adds a Phong model with two other parametrizable lights
- you may change the colors of the surface (diffuse inside/outside), specular, singularities.
- you may change
lightscolors and directions. view_shapechanges the volume that encloses the isosurface.view_radiuschanges the sizes of the previous volume.grid_size,grid_thicknessandgrid_attenuationchanges the display of overlayed grids/spheres/isolines.rotation_x,rotation_y,rotation_zchanges the current object rotation speed.stopstops the rotations.