# Steiner Surfaces

 Steiner surfaces are representations of the projective plane, discovered by J. Steiner. For in-depth 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 Cross-Cap 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*(z-1)*(z-1) +y*y*(y*y+z*z-1) so I've actually used a parametric isosurface to generate it. ``` #declare Fx = function {2*u*cos(v)*sqrt(1-u*u)} #declare Fy = function {2*u*sin(v)*sqrt(1-u*u)} #declare Fz = function {1-2*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>,}} 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((1-u*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} ```