SURFACES


Here is my collection of algebraic and parametric surfaces. I found a lot of these in A. Enzmann's pov-math collection. Some I have derived myself and some are from soundry sources. If you have one not in this list, please mail it to me. I have included some 2D versions of curves which are rotated around an axis.

Algebraic cylinders

Equations in three space (x,y,z) which are independent of one dimension (here z).

      x^3 - x^2 +y^2 = 0
      2*x^4 -3*x^2*y +y^2 -2*y^3 +y^4 = 0
      x^4 +x^2*y^2 -2*x^2*y -x*y^2 +y^2 = 0
      x^4 +y^4 +2*x^2*y^2 +3*x^2*y -y^3 = 0

Astrodal Ellipsoid

This surface goes in where the ellipsoid goes out. Which gives the surface an overall hyperbolic look.

Parametric form:

     x= pow(a*cos(u)*cos(v),3) 
y= pow(b*sin(u)*cos(v),3)
z= pow(c*sin(v),3)

Example:

a=1,b=1,c=1,u={-pi,pi},v={-pi,pi}

Barth sextic

This is (the real points of a part of) the Barth-sextic, an algebraic surface in complex three-dimensional projective space with 65 double points, given by the equation:

      4(t^2 x^2 - y^2)(t^2 y^2 - z^2)(t^2 z^2 - x^2) -
      (1+2t)(x^2 + y^2 + z^2 - 1)^2 = 0
      t = 0.5*(1 + sqrt(5))

Barth decic

      t= (1+Sqrt[5])/2
      w=1   
      8 (x^2-t^4 y^2) (y^2-t^4 z^2) (z^2-t^4 x^2)*
      (x^4+y^4+z^4-2 x^2 y^2-2 x^2 z^2-2 y^2 z^2)+
      +(3+5t) (x^2+y^2+z^2-w^2)^2 (x^2+y^2+z^2-(2-t) w^2)^2 w^2=0 

Bicorn:

This curve looks like the top part of a paraboloid, bounded from below by another paraboloid. The basic equation is:

      y^2*(a^2 - (x^2 + z^2)) - (x^2 + z^2 + 2*a*y - a^2)^2 =0

example a=0

Bifolia

      (x^2 + y^2 + z^2)^2 - a*(x^2 + z^2)*y =0

example a=3

Bohemian Dome

Okay - take a deep breath.
If you rotate a circle which is parallell to a plane in a circle that is perpendicular to the same plane, the resulting envelope is a Bohemian dome.

Parametric form:

      x= a*cos(u)  
y= b*cos(v) + a*sin(u)
z= c*sin(v)

Example:

a=0.5,b=1.5,c=1,u={0,2pi},v={0,2pi}

Boy surface

Model of the projective plane without singularities. Found by Werner Boy on assignment from David Hilbert. Polynomial by Francois Apery.

Parametric equation:

      x =(2/3)*(cos(u)*cos(2*v)+sqrt(2)*sin(u)*cos(v))*cos(u) /(sqrt(2) - sin(2*u)*sin(3*v))
      y =(2/3)*(cos(u)*sin(2*v)-sqrt(2)*sin(u)*sin(v))*cos(u) /(sqrt(2)-sin(2*u)*sin(3*v))
      z =sqrt(2)*cos(u)^2 / (sqrt(2) - sin(2*u)*sin(2*v))

Polynomial:

      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

Cassini ovals

Locus of points whose products of distances to two fixed points is a constant. Also cross-sections of circular torus. Giovanni Domenico Cassini.

Rotated around the y axis

      (x^2 + y^2 + z^2 + a^2)^2 - c*a^2*(x^2 + z^2) - b^2 )=0
Example: a=0.45 , b=0.5 , c=16

Cayley cubic

    -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

Chair

A tetrahedral surface looking like an inflateable chair from the 70's.
Implicit form:

     (x^2+y^2+z^2-a*k^2)^2-b*((z-k)^2-2*x^2)*((z+k)^2-2*y^2)=0 

with k=5, a=0.95 and b=0.8.

Clebsch diagonal cubic

with 10 eckhard points (3 lines in a tritangent meeting)

   81*(x^3+y^3+z^3)-189*(x^2*y+x^2*z+y^2*x+y^2*z+z^2*x+z^2*y)+
   54*(x*y*z)+126*(x*y+x*z+y*z)-9*(x^2+y^2+z^2)-9*(x+y+z)+1=0

Costa Minimal Surface

The famous Costa-Hoffman-Meeks minimal surface. I will only include the Mathematica parametrization due to Alfred Gray et al. Look elsewhere on my homepage for a PoV parametrization with only "elementary" functions

      c=189.07272;
      e1=6.87519;

      costa1[u_,v_]:= (1/2) Re[-WeierstrassZeta[u+I v,{c,0}] +Pi u +
      Pi^2/(4 e1)+(Pi/(2 e1)) (WeierstrassZeta[u+I v-1/2,{c,0}]-
      WeierstrassZeta[u+I v-I/2,{c,0}])]

      costa2[u_,v_]:= (1/2) Re[-I*WeierstrassZeta[u+I v,{c,0}] +Pi v +
      Pi^2/(4 e1)-(Pi/(2 e1))*(I*WeierstrassZeta[u+I v-1/2,{c,0}]-
      I*WeierstrassZeta[u+I v-I/2,{c,0}])]

      costa3[u_,v_]:=(Sqrt[2 Pi]/4) Log[Abs[(WeierstrassP[u+I v,{c,0}]-e1)/
      (WeierstrassP[u+I v,{c,0}]+e1)]]

      costa[u_,v_]:={costa1[u,v],costa2[u,v],costa3[u,v]}

      costaplot80=ParametricPlot3D[costa[u,v],{u,0.001,1.001},
                  {v,0.001,1.001},PlotPoints->80]


      selectgraphics3d[graphics3dobj_,bound_,opts___]:=
           Show[Graphics3D[Select[graphics3dobj,
       (Abs[#[[1,1,1]]] < bound &&  Abs[#[[1,1,2]]] < bound &&
        Abs[#[[1,1,3]]] < bound &&  Abs[#[[1,2,1]]] < bound &&
        Abs[#[[1,2,2]]] < bound &&  Abs[#[[1,2,3]]] < bound &&
        Abs[#[[1,3,1]]] < bound &&  Abs[#[[1,3,2]]] < bound &&
        Abs[#[[1,3,3]]] < bound &&  Abs[#[[1,4,1]]] < bound &&
        Abs[#[[1,4,2]]] < bound &&  Abs[#[[1,4,2]]] < bound 
        )&]],opts]

      dip[ins_][g_]:=$DisplayFunction[Insert[g,ins,{1,1}]]


      selectgraphics3d[costaplot80[[1]],8,
        Boxed->False,ViewPoint->{2.9,-1.4,1.2},
        PlotRange->{{-4,4},{-4,4},{-2,2}},
        DisplayFunction->dip[EdgeForm[]]]
     

Crossed Trough

This is a surface with four pieces that sweep up from the x-z plane.

       x^2*z^2 - y = 0

Cubic saddle.

      x^3 - y^3 - z = 0

Cushion

From siggraph

      z^2*x^2 - z^4 - 2*z*x^2 + 2*z^3 + x^2 - z^2
      -(x^2 - z)^2 - y^4 - 2*x^2*y^2 - y^2*z^2 + 2*y^2*z + y^2 =0       

Dervish.

This surface reminded me of the Whirling Dervishes. Hands out, and skirt billowing.

Implicit form:

      a*F+q=0
     with:
      F=h1*h2*h3*h4*h5, h1=x-z
      h2=cos(2*Pi/5)*x-sin(2*Pi/5)*y-z
      h3=cos(4*Pi/5)*x-sin(4*Pi/5)*y-z
      h4=cos(6*Pi/5)*x-sin(6*Pi/5)*y-z
      h5=cos(8*Pi/5)*x-sin(8*Pi/5)*y-z
      q=(1-c*z)*(x^2+y^2-1+r*z^2)^2
      r=(1+3*sqrt(5))/4
      a=-(8/5)*(1+1/sqrt(5))*sqrt(5-sqrt(5))
      c=sqrt(5-sqrt(5))/2 

Devil's curve in 3-space variant.

      x^4 + 2*x^2*z^2 - 0.36*x^2 - y^4 + 0.25*y^2 + z^4 = 0

2D :

      x^2 * (x^2 - a^2) - y^2 * (y^2 - b^2)=0

Dini's surface

Dini's surface of constant negative curvature. Looks like a flower

.

      x=a*cos(u)*sin(v)
      y=a*sin(u)*sin(v) 
      z=a*(cos(v)+log(tan((v/2))))+b*u

Example:

a=1,b=0.2,u={ 0,4*pi},v={0.001,2}

Dupin Cyclid

Envelope of spheres kissing three other spheres. Also envelope of spheres with centres on a conic and touching a sphere. Every Dupin Cyclid is the inverse of a Torus. This formula is the inversion of a torus in the x-z plane, with the origin as inversion center.

      (r1^2 - dy^2 - (dx + r0)^2)*
      (r1^2 - dy^2 - (dx - r0)^2)*
      (x^4+y^4+z^4)+
      2*((r1^2 - dy^2 - (dx + r0)^2 )*
      (r1^2 - dy^2 - (dx - r0)^2)*
      (x^2*y^2+x^2*z^2+y^2*z^2))+ 
      2*ri^2*((-dy^2-dx^2+r1^2+r0^2)*
      (2*x*dx+2*y*dy-ri^2)-4*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 

r0=Major radius of torus.
r1=Minor radius of torus.
dx,dy=Torus displacement.
ri=Inversion radius.

Example r0=4.9,r1=5,dx=2,dy=0,ri=3 (double crescent)
or r0=3,r1=5,dx=3,dy=0,ri=9 (degenerate w. arch)
or r0=6,r1=0.5,dx=3,dy=0,ri=12 (plain)

Ennepers surface.

This one is a classic. In POV format it's a 9. degree polynomial.

      6*((y^2-x^2)/(4*z)-(1/4)*(x^2+y^
      ((y^2-x^2)/(2*z)+2*z^2/9+2/3)^3-2+(8/9)*z^2)+2/9)^2=0

Parametric

      x=u-(u*u*u/3)+u*v*v 
      y=v-(v*v*v/3)+u*u*v 
      z=u*u-v*v 

Try u={-2,2},v={-2,2}

Folium surface

      (y^2 + z^2) * (1 + (b - 4*a)*x) + x^2*(1 + b) = 0

Example a=1,b=1

2D :

      y^2  * (1 + (b - 4*a)*x) + x^2*(1 + b) = 0

Glob

Sort of like basic teardrop shape.

      0.5*x^5 + 0.5*x^4 - (y^2 + z^2) = 0   

Heart

Looks like a heart

      (2*x^2+y^2+z^2-1)^3-(1/10)*x^2*z^3-y^2*z^3 = 0

Hunt surface

      4*(x^2+y^2+z^2-13)^3 + 27*(3*x^2+y^2-4*z^2-12)^2 = 0 

Hyperbolic torus

      x^4 + 2*x^2*y^2 - 2*x^2*z^2 - 2*(r0^2+r1^2)*x^2 + y^4 -
      2*y^2*z^2 + 2*(r0^2-r1^2)*y^2 + z^4 + 2*(r0^2+r1^2)*z^2 +
      (r0^2-r1^2)^2 = 0

Example r0= 0.6, r1= 0.4

Kampyle of Eudoxus

      (y^2 + z^2) - c^2 * x^4 + c^2 * a^2 * x^2 =0 

Example a=0.2, c=1

2D.

      y^2  - c^2 * x^4 + c^2 * a^2 * x^2 = 0

Klein Bottle

Think of it as a rectangle where one pair of opposite sides are joined directly, and the other pair are joined with a half twist.
One sided surface.
Felix Klein.

Parametric:

      x = cos(u)*(cos(u/2)*(sqrt_2+cos(v))+(sin(u/2)*sin(v)*cos(v)))
      y = sin(u)*(cos(u/2)*(sqrt_2+cos(v))+(sin(u/2)*sin(v)*cos(v)))
      z = -1*sin(u/2)*(sqrt_2+cos(v))+cos(u/2)*sin(v)*cos(v)

Polynomial; Looks odd, from Ian Stewart.

      (x^2+y^2+z^2+2*y-1)*((x^2+y^2+z^2-2*y-1)^2-8*z^2)+
      16*x*z*(x^2+y^2+z^2-2*y-1)=0

Knot or Threefoil knot

This is just clipped from a POV file I did to draw a knot

    //various constants
      uumin  = 0,uumax  = 4*pi
      vvmin  = 0,vvmax  = 2*pi
      a=1, b=0.3, c=0.5, d=0.3
    //preliminary calculations
      r=a+b*cos(1.5*uu)
      xx=r*cos(uu)
      yy=r*sin(uu)
      zz=c*sin(1.5*uu)                   
      dx=-1.5*b*sin(1.5*uu)*cos(uu)-(a+b*cos(1.5*uu))*sin(uu)
      dy=-1.5*b*sin(1.5*uu)*sin(uu)+(a+b*cos(1.5*uu))*cos(uu) 
      dz=1.5*c*cos(1.5*uu)                            //Derivatives
      qn=vnormalize()                     //Vector operatons
      qvn=vnormalize()
      ww=vcross(qn,qvn)
    //points and normals
      x1=xx+d*(qvn.x*cos(vv)+ww.x*sin(vv))  //Calculate the
      y1=yy+d*(qvn.y*cos(vv)+ww.y*sin(vv))  //points. ww.x is the 
      z1=zz+d*ww.z*sin(vv)                             //x value of ww vector
      nx1=qvn.x*cos(vv)+ww.x*sin(vv)            //Normals needed to
      ny1=qvn.y*cos(vv)+ww.y*sin(vv)            //make smooth triangles
      nz1=ww.z*sin(vv)

Kuen's surface

Kuens's surface of constant negative curvature. Curvature is here the product of the extrema of the directional curvatures.

      x=2*(cos(u)+u*sin(u))*sin(v)/(1+u*u*sin(v)*sin(v))
      y=2*(sin(u)-u*cos(u))*sin(v)/(1+u*u*sin(v)*sin(v))
      z=log(tan(v/2))+2*cos(v)/(1+u*u*sin(v)*sin(v)) 

Try these values.

u = {-4, 4}
v = {0.05, pi-0.05}

Kummer Surface

Radiating Rods. I haven't tested this extensively.

     v1: x^4+y^4+z^4-x^2-y^2-z^2-x^2*y^2-x^2*z^2-y^2*z^2+1 = 0    

     v2: x^4+y^4+z^4+a*(x^2+y^2+z^2)+b*(x^2*y^2+x^2*z^2+y^2*z^2)+
         c*x*y*z-1=0 

Lemniscate of Gerono, or Eight Curve

This figure looks like two teardrops with their pointed ends connected. It is formed by rotating the Lemniscate of Gerono about the x-axis.

      x^4 - x^2 + y^2 + z^2 = 0

2D

      y^2 - c^2 * a^2 * x^2 + c^2*x^4 =0  

Mitre surface

      4*x^2*(x^2 + y^2 + z^2) - y^2*(1 - y^2 - z^2) = 0

Moebius strip

      x=cos(u)+v*cos(u/2)*cos(u) 
      y=sin(u)+v*cos(u/2)*sin(u)
      z=v*sin(u/2)  

u={0,2pi} v={-0.3,0.3}

Nodal_cubic

      y^3 + z^3 - 6*y*z=0

Odd surface

      z^2*x^2-z^4-2*z*x^2+2*z^3+x^2-z^2-(x^2-z)^2-y^4 - 
      2*y^2*x^2-y^2*z^2+2*y^2*z+y^2=0 

Paraboloid

     x^2 - y + z^2=0 

Parabolic Torus

    x^4 + 2*x^2*y^2-2*x^2*z-(r0^2+r1^2)*x^2+y^4-2*y^2*z+
      (r0^2-r1^2)*y^2+z^2+(r0^2+r1^2)*z+(r0^2-r1^2)^2 = 0 

Example r0 = 0.6, r1=0.5

Pillow/Tooth object

From the back cover of the 1992 Siggraph proceedings

      x^4 + y^4 + z^4 - (x^2 + y^2 + z^2) = 0   

Piriform

Very nice teardrop shape

     (x^4 - x^3) + y^2 + z^2 = 0

2D:

      y^2 - a * c^2 * x^3 - b * c^2 * x^4 = 0        b>0

Quartic paraboloid.

Looks like the quadric paraboloid, but is squared off on the bottom and sides.

      x^4 + z^4 - y = 0

Quartic saddle

Looks like the quadric saddle, but is squared off in the middle. The equation is:

      x^4 - z^4 - y = 0  

Quartic Cylinder

      (x^2 + z^2) * y^2 + c^2 * (x^2 + z^2) - c^2 * a^2 = 0

Example a=1, c=0.1

Steiners Roman surface.

Model of the projective plane Jacob Steiner with algebra by Karl Weierstrass

      x^2*y^2 + x^2*z^2 + y^2*z^2 + x*y*z = 0

There are several surfaces related to this. Here are a few:

     x^2*y^2-x^2*z^2+y^2*z^2-x*y*z=0
     y^2-2*x*y^2-x*z^2+x^2*y^2+x^2*z^2-z^4=0

Strophoid

     (b - x)*(y^2 + z^2) - c^2*a*x^2 - c^2*x^3 = 0  

Example a=1, b=-0.1, c=0.4 from A. Enzmann

2D:

      (b - x)*y^2  - c^2*a*x^2 - c^2*x^3 = 0

a=b gives Right Strophoid
a=3*b gives trisectrix of Maclaurin

Swallowtail

A classic curve from Catastrophy theory. Parametric form:

     x= u*pow(v,2) + 3*pow(v,4) 
y= -2*u*v - 4*pow(v,3)
z= u

Example:

u={-2,2},v={-0.8,0.8}

Tangle

A curious blobby cube.

Polynomial:

      x^4 - 5*x^2 + y^4 - 5*y^2 + z^4 - 5*z^2 + 11.8 = 0             

Torus

      x^4 + y^4 + z^4 + 2 x^2 y^2 + 2 x^2 z^2 + 2 y^2 z^2
      -2 (r0^2 + r1^2) x^2 + 2 (r0^2 - r1^2) y^2 
      -2 (r0^2 + r1^2) z^2 + (r0^2 - r1^2)^2 = 0

r0 is the "major" radius of the torus
r1 is the "minor"

Torus - sorta, but with two gumdrop shapes near the hole

     4*(x^4 + (y^2 + z^2)^2) + 17 * x^2 * (y^2 + z^2) -
              20 * (x^2 + y^2 + z^2) + 17 = 0

Umbrella

      x^2 - y*z^2=0

Witch of Agnesi

      a * (y - 1) + (x^2 + z^2) * y  =0 

Example a=0.04 from A. Enzmann

2D:

      a^2 * y + x^2 * y - c = 0

c=a^3 gives Wich of Agnesi

Back