Steiner surfaces are representations of the projective plane, discovered
by J. Steiner. For indepth mathematical information about Steiner surfaces
see
http://www.ipfw.edu/math/Coffman/steinersurface.html.
All Steiner surfaces contain singularities of some form or other.


This is Steiner's Roman Surface. It has three double lines, six pinch points, and a triple point.
function {x*x*y*y + x*x*z*z + y*y*z*z  x*y*z}


This surface has two pinch points, three double lines and a triple point.
function {x*x*y*y  x*x*z*z + y*y*z*z  x*y*z}


This is Steiner's CrossCap Surface. It has one double line and two pinch points.
The pinch points are known as Whitney singularities.
function {4*x*x*(x*x + y*y + z*z + z)
+ y*y*(y*y + z*z  1) }


This surface has a "tachnodal" line, a double line and two pinch points.
function {y*y  2*x*y*y x*z*z
+x*x*y*y +x*x*z*z z*z*z*z}


This surface has a "tachnodal" line, a double line and four pinch points.
For some reason, this surface didn't look anything remotely like what it was
supposed to when I used function x*x*(z1)*(z1) +y*y*(y*y+z*z1) so
I've actually used a parametric isosurface to generate it.
#declare Fx = function {2*u*cos(v)*sqrt(1u*u)}
#declare Fy = function {2*u*sin(v)*sqrt(1u*u)}
#declare Fz = function {12*u*u*cos(v)*cos(v)}
parametric {
function {Fx(u,v,0)}
function {Fy(u,v,0)}
function {Fz(u,v,0)}
<0,0>,<1,2*pi>
contained_by{box{<R,R,R>,<R,R,R>}}
precompute 18, x,y,z
}


This surface has an "oscnodal" line. It has been called the "Cross Cup" due
to its similarity to the cross cap.
For some reason, this surface didn't look anything remotely like what it was
supposed to when I used a conventional isosurface so
I've actually used a parametric isosurface to generate it.
#declare Fx = function {1 u*u +u*u*sin(v)*sin(v)}
#declare Fy = function {u*u*sin(v)*sin(v)
+2*u*u*sin(v)*cos(v)}
#declare Fz = function {sqrt((1u*u)/2)*u*(sin(v)+cos(v))}
parametric {
function {Fx(u,v,0)}
function {Fy(u,v,0)}
function {Fz(u,v,0)}
<0,0>,<1,2*pi>
contained_by{box{V1,V2}}
max_gradient 10
accuracy 0.00001
precompute 20, x,y,z
Warning: This surface takes a ridiculously long time to render.


This surface has a double line and no pinch points.
function {x*y*y y*z x*z*z }


This is Whitney's Umbrella. It has two pinch points, one of which is at infinity.
function {x*x y*y*z}


This surface is isomorphic to Whitney's Umbrella, but has the two pinch points close to the origin.
It's called Plücker's Conoid.
function {x*x  x*x*z y*y*z }


This is Cayley's Ruled Cubic. It has one double line and a singularity called a "unode," which is not a pinch point.
function {y*y*y +x*y*z z*z}

