Main applet window  General Help JavaView Help.

Examples of algebraic surfaces

For details of the basic operation of the program see the Main Help page. Some special options specific to the calculation of algebraic surfaces is below. Example definitions plus some explanation are also below.

Region of interest

These parameters control the range over which the surface is calculated. Its best if unequal values are chosen for the ranges. Otherwise certain degeneracies may occur which can lead to poorer results.

Resolution control

These parameters control how detailed the resulting mesh will be. Each of these must be a power of two. The box specified by the range is split into a number of smaller boxes and points of the faces of these boxes will be found together with any singularities lying in the middle of them. The Coarse parameter specifies the number of smaller boxes, by default 8 along the x, y, z directions, i.e. 512 boxes. The Fine parameter specifies the smallest box size used to find a singularity. The Face specifies how accurately each face of the box is subdivided and the edge parameter specifies how accurately each edge is subdivided.

Generally you will just want to change the Coarse parameter. If the singularities are not calculated very well then you could also increase the Fine parameter. Lowering the other parameters may give quicker results. Not much will be gained by increasing them. As a rule you should keep Coarse < Fine < Face < Edge or the results will be unpredictable.


If a degenerate surface is specified the program can take a very long time to run. To prevent this from happening the cgi program will timeout after a certain time. This may mean the surface will not be calculated properly. If you want to calculate more complicated surfaces please email me at and I'll provide a version you can run at home which does not have the timeout restriction.

Draw Degenerate lines

Some surfaces such as the cross cap x^2 y + z^2 = 0; can contain degenerate lines, and isolated points as well as surface you normally expect. By default the drawing of these lines and points is switched off, clicking on the Draw Degenerate lines switches the drawing of these on. Note that when this option is on two additional geometries will be created, these are called something like asurf lines and asurf points will be created.


Below are various examples of algebraic surfaces, they include:

Further examples of algebraic surface can be found at some other web-sites.

The different types of singularities which can appear

These are taken from a classification of degenerate points, see Singularities of Maps from R^3 to R for a bit more explanation.

TypeNormal formAlternate forms
A0 (not singular) x - y^2 - z^2; x + y^2 - z^2;
A1 x^2 - y^2 - z^2; x^2 + y^2 + z^2; (isolated point)
A2 x^3 - y^2 - z^2; x^3 + y^2 - z^2;
A3 x^4 - y^2 - z^2; x^4 + y^2 - z^2;
x^4 + y^2 + z^2; (isolated point)
A4 x^5 - y^2 - z^2; x^5 + y^2 - z^2;
D4 x^2 y - y^3 - z^2; x^2 y + y^3 - z^2;
D5 x^2 y - y^4 - z^2; x^2 y + y^4 - z^2;
D6 x^2 y - y^5 - z^2; x^2 y + y^5 - z^2;
E6 x^3 - y^4 - z^2; x^3 + y^4 - z^2;
E7 x^3 - x y^3 - z^2;
E8 x^3 - y^5 - z^2;

Then there are some highly degenerate surfaces where whole curves are singular.

Cross Cap (Whitney Umbrella)
x^2 y - z^2 = 0;
Considered as a map from R^2 to R^3 the cross cap This differs from a cross cap (a parameterised surface) because it has a handle along the line x = z = 0. You will find cross caps present in many famous algebraic surface, for example Steiner's Roman surface contains six.
A Swallowtail surface
-4 z^3 y^2 - 27 y^4 + 16 x z^4 -128 x^2 z^2 + 144 x y^2 z + 256 x^3 = 0;
This surface is an example of a discriminate surface. Consider the polynomial
	f = t^4 + z t^2 + y t + x
f will have a repeated root when f=0 and df/dt = 0. Now
	df/dt = 4 t^3 + 2 z t + y
solving this pair of equations for t gives
4 z^3 y^2 - 27 y^4 + 16 x z^4 -128 x^2 z^2 - 144 x y^2 z + 256 x^3 = 0
so the surface of the swallowtail gives the set of values of x,y,z where f has a repeated root. There a several special curves on this surface. If
	d^2f/dt^2 = 12 t^2 + 2 z = 0
as well then f has a triple root, this happens when
	x = - (t^4 + z t^2 + y t);
	y = - (4 t^3 + 2 z t);
	z = - 6 t^2
this curve lies along the cuspidal edge of the surface.

The polynomial with have two repeated roots if it can be written as

	f = (t^2 - a)^2
	f = t^4 - 2 a t^2 + a^2
i.e. if x = a^2, y = 0, z = - 2 a, i.e. if 4 x = z^2, y = 0. If z > 0 this corresponds to two repeated real roots (the self intersection of the surface) and if z < 0 then it gives two complex repeated roots (a tail shown on the surface).

Finally if x = y = z then the polynomial is just t^4 which has a four times repeated root for t = 0.

Deformations of surfaces

The reason why the above singularities are important is that when you have a family of surfaces controlled a a number of parameters you will often find some surfaces which contain one of these singularities. For example consider the one parameter family of surfaces:

x^2 - y^2 - z^2 = a; 

for each different value of a you get a different surface. When a < 0 you get a hyperboloid of one sheet and when a > 0 you get a hyperboloid of two sheets. When a = 0 you get a surface which contains an A1 singularity. Try using the equation

x^2 - y^2 - z^2 = a;
a = 0.1;

with a taking the values 0.1, 0.05, 0, -0.05, -0.1. In a one parameter family you typically only get A1 singularities either of the type show above or its alternate form. The alternate form is just an isolated point, which occurs in the family

x^2 + y^2 + z^2 = a;

Lots of fun can be had by taking one of the more complicated singularities such as D4 and adding lower degree terms for example try

x^2 y - y^3 - z^2 + a x^2 + b y^2 + c (x^2-y^2) + d y z = 0;
a = 0.0;
b = 0.0;
c = 0.0;
d = 0.0;

And vary the values of a, b, c, d. When a and b are non zero you get surfaces which show A2 singularities. Perhaps the most fun is had when the value of c is changed and a surfaces with three A1 points is displayed.

Another deformation to try is to take the D5 and add on multiples of y^3

x^2 y + y^4 - z^2 + a y^3 = 0;
a = -0.5;

You can do the same trick with the other forms of D4 and D5 as well as any of the other higher singularities.

Low degree polynomials with many nodes

Lots of

Cayley's cubic
 4 (x^2+y^2+z^2) + 16 x y z = 1;

Working in complex projective 3 space there is only one cubic with 4 singular points (up to isomorphism), which is called Cayley's cubic. An equation for this is

In real 3D space the other versions can look very different, try:
4(x^3+y^3+z^3+w^3)-(x+y+z+w)^3=0; w = 1;
Kummer surface
A family of quartic surfaces, some of which have 16 nodes.
(3-v^2) ( x^2+y^2 + z^2 - v^2)^2 - (3 v^2 - 1) p q r s = 0;
p = 1 - z - x rt2;
q = 1 - z + x rt2;
r = 1 + z + y rt2;
s = 1 + z - y rt2;
v = 1.1;
rt2 = sqrt(2);
(You can vary the value of v to get different surfaces, try v=1, 1.1, 1.5, 1.7, 1.8, 2. Note the similarity with the roman surface).
Barth's sextic surface with 65 singularities
4 ( t^2 x^2 - y^2 ) ( t^2 y^2 - z^2 ) ( t^2 z^2 - x^2 ) 
- ( 1 + 2 t) (x^2 + y^2 + z^2 - 1)^2 = 0;
t = 1.618034; 
The second equation defines the value of tau, the golden ratio). (use +/-2 for the domain bounds)
Sarti's sextic with 48 double points
Q6 =(xx^2+yy^2+zz^2+ww^2)^3;
lambda = -2/3;

Other surfaces

A sphere
x^2 + y^2 + z^2 = 1;
A squared off sphere
x^4 + y^4 + z^4 = 1;
A generalisation of a sphere, the square have been replaced by higher powers. Try increasing the powers to get nearer to a cube.
Three planes
x y z = 0;
Steiner's Roman Surface
x^2 y^2 + y^2 z^2 + z^2 x^2 = 2 x y z;
This is an immersion of the real projective plane into R^3. It contains a triple point as well as six cross caps.
Boys surface
64 (1-z)^3 z^3- 48 (1-z)^2 z^2 (3 x^2+3 y^2+2 z^2)+
    12 (1-z) z (27 (x^2+y^2)^2-24 z^2 (x^2+y^2)+
    36 sqrt(2) y z (y^2-3 x^2)+4 z^4)+
    (9 x^2+9 y^2-2 z^2) (-81 (x^2+y^2)^2-72 z^2 (x^2+y^2)+
    108 sqrt(2) x z (x^2-3 y^2)+4 z^4)=0; 
Another immersion of the real projective plane. In this immersion there are no cross caps.
Dupin Cyclides
This is a family of quartic surfaces which are generalisation of a torus. They are often used in engineering applications. They are special as all their lines of curvature are circles and they consist entirely of ridge points.
f1  f2 (x^4+y^4+z^4)
+ 2 f1 f2 (x^2 y^2+x^2 z^2+y^2 z^2)
+ 2 ri^2 ((r1^2+r0^2-dy^2-dx^2) (2 x dx+2 y dy-ri^2)) (x^2+y^2+z^2)
- 8 ri^2 (dy r0^2 y) (x^2+y^2+z^2)
+ 4 ri^4(dx x+dy y) (-ri^2+dy y+dx x)
+ 4 ri^4 r0^2 y^2+ri^8=0;
f1 = (r1^2 - dy^2 - (dx + r0)^2);
f2 = (r1^2 - dy^2 - (dx - r0)^2);
r0=2.1; r1=2;
dx=2; dy=0; ri=2;
Here r0=Major radius of generating Torus, r1=Minor radius of generating Torus, dx,dy=Torus displacement, ri=Inversion radius.

Other examples to try:
r0=1.9; r1=2; dx=2;   dy=0; ri=2;
r0=2;   r1=2; dx=2;   dy=0; ri=2;
r0=2.1; r1=2; dx=2;   dy=0; ri=2;
r0=4;   r1=2; dx=2;   dy=0; ri=2;
r0=4.5; r1=2; dx=2;   dy=0; ri=2;
r0=1.1; r1=2; dx=5.5; dy=0; ri=3;
Look at the last of these with edges on and elements off.
Chub's Surface
x^4 + y^4 + z^4 - x^2 - y^2 - z^2 + 0.5 = 0;
This has cubic symmetry and has 12 nodes.
Tetrahedral skeleton
(x^2 + y^2 + z^2)^2 + 8 x y z - 10 (x^2 + y^2 + z^2) + 25=0;
Use +/- 5 for the bound.
Hunt's Surface
4 (x^2 + y^2 + z^2 - 13)(x^2 + y^2 + z^2 - 13)(x^2 + y^2 + z^2 - 13) + 27 
    (3 x^2 + y^2 -4 z^2 - 12)^2 = 0;
A surface arising from the study of linkages, this has two cuspidal edges and two nodes. Use +/- 5 for domain limits
Kohn-Nirenberg domain
3 z + 9 z^2*b + b^4 + 15/7*b*re + a*(x^2 + y^2 + 9 z^2)^5;
b = x^2 + y^2;
re = ((x,y)*(x,y)*(x,y)*(x,y)*(x,y)*(x,y)).(1,0);
a= 0.0;
(use +/-3 for the domain). Try a=0, 0.3, 0.64, 1.0.
Five fold oddity.
z + ((x,y)*(x,y)*(x,y)*(x,y)*(x,y)).(1,0);
(use +/-2 for the domain). This example illustrates some more complex features of the syntax, namely the use of vectors and the fact that 2D vectors can be used as complex numbers. Hence (x,y)*(x,y) calculates the square of the complex number (x,y) and (x,y).(1,0) calculates the dot product of two vectors. Here it calculates the real part of (x,y)^5.
Bohemian Dome
y^4 = A^2 + B^2 + 6 A B + 2 ab ( A + B);
AB = y^2 - A - B;
A = 1-x^2; B = 1-z^2;
This surface is generated by taking a set of circles in planes parallel to the x-z plane whose centres lie on a circle in the y-z plane. A parameteric definition is
x= cos(u);
y= cos(v) + sin(u);
z= sin(v);
To get an algebraic equation let a = sin(u), b = COs(v), A = a^2 = 1- x^2, B = b^2 = 1- z^2 and calculate the second and fourth powers of y:
y = a + b
y^2 = a^2 + 2 a b + b^2 = A + 2 a b + B (3)
y^4 = a^4 + 4 a^3 b + 6 a^2 b^2 + 4 a b^3 + b^4
    = A^2 + 4 a b (A + B) + 6 A B 
In this last eqn A and B are known in terms of x and z and a formula for a b can be found by rearranging the equation for y^2.

Some other surfaces from the hand of Cayley

Cayley 1
a3=-3*a1; a5=a2^2/(3.0*a1); a6=-a2; a7=a1;
a1 = -1.0; a2 = -1.0; a4 = 1.0;
Cayley 2
a1 = -0.8; a2 = 0.0; a3 = 0.0; a4 = 1.0;
a5 = 0.8; a6 = 0.0; a7 = 0.0;
(Use +/-2 for the domain bounds).
Cayley 3
Cayley 4
a1=3.0; a2=0.8;
(Use +-4 for domain bounds).

Other pages about Algebraic Surface

Many of the equations here have been pinched from other place on the web, have a look to see some other wonderful surface. and my own
Web page, applet and Algebraic Surface program by Richard Morris
home page Email Copyright Jan 2001.