Main applet window General Help JavaView Help.
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.
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.
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 rich@singsurf.org and I'll provide a version you can run at home which does not have the timeout restriction.
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:
These are taken from a classification of degenerate points, see Singularities of Maps from R^3 to R for a bit more explanation.
Type | Normal form | Alternate 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.
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.
-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 + xf will have a repeated root when f=0 and df/dt = 0. Now
df/dt = 4 t^3 + 2 z t + ysolving 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 = 0so 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 = 0as 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^2this 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^2i.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.
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.
Lots of
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
4(x^3+y^3+z^3+w^3)-(x+y+z+w)^3=0;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;or
-5(x^2*y+x^2*z+y^2*x+y^2*z+z^2*y+z^2*x)+2*(x*y+x*z+y*z)=0;
(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).
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)
S6+lambda*Q6=0; Q6 =(xx^2+yy^2+zz^2+ww^2)^3; S6=xx^6+yy^6+zz^6+WW^6+15.0*(xx^2*yy^2*zz^2+xx^2*yy^2*WW^2+xx^2*zz^2*WW^2+yy^2*zz^2*WW^2); xx=z-1+sqrt(2)*x; yy=z-1-sqrt(2)*x; zz=-(z+1+sqrt(2)*y); WW=-(z+1-sqrt(2)*y); w=1; lambda = -2/3;
x^2 + y^2 + z^2 = 1;
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.
x y z = 0;
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.
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.
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.
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.
x^4 + y^4 + z^4 - x^2 - y^2 - z^2 + 0.5 = 0;This has cubic symmetry and has 12 nodes.
(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.
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
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.
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.
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 BIn 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.
p1+(a2*z+a3)*p3+a4*z^3+a5*z^2+a6*z+a7=0; p1=2*x^3-6*x*y^2; p3=x^2+y^2; a3=-3*a1; a5=a2^2/(3.0*a1); a6=-a2; a7=a1; a1 = -1.0; a2 = -1.0; a4 = 1.0;
a1*p1+(a2*z+a3)*p3+a4*z^3+a5*z^2+a6*z+a7=0; p1=2*x^3-6*x*y^2; p3=x^2+y^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).
x^2+y^2+z^3+3.2*(x^3-3*x*y^2); 16*p*q*r-s^3;
25*z^3+16*z*y^2+60*x^2*y+50*z^2; p1=2*x^3-6*x*y^2; p3=x^2+y^2; a1=3.0; a2=0.8;(Use +-4 for domain bounds).