Definition
Let p_{0}, p_{1}, p_{2}, p_{3} be quadratic polynomials in two variables u, v. This means they're of the form
p_{i}(u,v)=Au^{2}+Buv+Cv^{2}+Du+Ev+F
for constant coefficients A, B, C, D, E, F. If you plot the parametric graph
(x,y,z)=(p_{1}/p_{0} , p_{2}/p_{0} , p_{3}/p_{0})
for some range of input values u, v, the image should be a twodimensional surface in (x,y,z)space. It's called a Steiner surface patch, but what does it look like? This web site lists all the different geometric types of Steiner surfaces. Usually, graphing polynomial quotients only gives a patch  a part of the whole surface. The mathematical setting for describing the entire surface is projective geometry.
Background
The "real projective plane" is the set of lines through the origin in real 3dimensional space; when each of these lines is represented by one point, the resulting set is, in an abstract way, a smooth, twodimensional surface. There are many ways to represent this surface as a twodimensional subset of three dimensional space, and some of these representations were studied by J. Steiner. Here's some background on the geometry of Steiner's images of the real projective plane.
A convenient way to assign coordinates to the real projective plane is to pick a basis of 3space, and denote by [u_{0} : u_{1} : u_{2}] the line equal to the set of all scalar multiples of the nonzero ordered triple (u_{0},u_{1},u_{2}). So [1 : 2 : 3] denotes the same line as [2 : 4 : 6], and another example is [0 : 1 : 0], which is the u_{1}axis. This mathematical description of the projective plane is called a "homogeneous coordinate system," and it generalizes to any dimension: real projective nspace is the set of lines through the origin in n+1 dimensions.
The starting point for our approach to Steiner surfaces is the Veronese variety, a smooth, 2dimensional surface, given by embedding the projective plane into projective 5space by the homogeneous parametric equations
[u_{0} : u_{1} : u_{2}] > [u_{0}^{2} : u_{1}^{2} : u_{2}^{2} : u_{1}u_{2} : u_{0}u_{2} : u_{0}u_{1}].
This surface can be projected into 4space smoothly, but any projection into three dimensional space must have singularities. Such a projection is defined by multiplying the 1 by 6 vector with a 6 by 4 matrix, so composing the Veronese map with the projection matrix gives four linear combinations p_{i} of these six monomials. The image of such a parametric map into projective 3space is called a Steiner surface; examples include the Roman surface and the Cross Cap surface. The geometric properties of Steiner surfaces, including the degree and the number and type of singularities, such as pinch points, double lines, and triple points, depend on the projection from five ambient dimensions to three.
A natural way to classify Steiner surfaces is to say that two are equivalent if they are related by linear transformations of the domain (the projective plane, [u_{0} : u_{1} : u_{2}]) and the range (projective 3space, coordinates [x_{0} : x_{1} : x_{2} : x_{3}]). A classification of Steiner surfaces was known in the XIX century in the case where the coordinates and projective transformations are allowed to be complex. A classification in the real case has been studied in our recent paper :
A. Coffman, A. Schwartz, and C. Stanton, The algebra and geometry of Steiner and other quadratically parametrizable surfaces, Computer Aided Geometric Design (3) 13 (April 1996), 257286.
 Updated comments on the paper:
 CAGD article's ScienceDirect abstract (and full text link for some users)
A parametrization of a Steiner surface patch in a 3dimensional affine neighborhood by quadratic rational functions can be obtained from the quadratic polynomials by "dehomogenizing": using two domain variables u=u_{1}/u_{0} and v=u_{2}/u_{0}, and three range variables, so that dividing by the first homogeneous coordinate transforms, for example,
[x_{0} : x_{1} : x_{2} : x_{3}] = [p_{0} : p_{1} : p_{2} : p_{3}] = [u_{0}^{2}+u_{1}^{2}+u_{2}^{2} : u_{1}u_{2} : u_{0}u_{2} : u_{0}u_{1}]
into the fractions
(x_{1}/x_{0} , x_{2}/x_{0} , x_{3}/x_{0}) = (x , y , z) = (p_{1}/p_{0} , p_{2}/p_{0} , p_{3}/p_{0}) = (uv/(1+u^{2}+v^{2}) , v/(1+u^{2}+v^{2}) , u/(1+u^{2}+v^{2})).
In fact, this description is just a fancy way to state the original definition of a Steiner surface: the image of three rational functions of two variables, where the numerators are any three quadratic polynomials, and the denominators are equal quadratics. The 24 entries in the projection matrix are exactly the coefficients appearing in the quadratics. The (x,y,z) variables are the usual Cartesian coordinates for three dimensions; this shows how real projective 3space contains the Cartesian 3space, as the subset where x_{0} is nonzero. This subset is called an "affine neighborhood," and the subset defined by x_{0}=0 is the "plane at infinity," where the x_{1}/x_{0}, etc., fractions are undefined.
The following list of Steiner surfaces represents each equivalence class from the classification theorem, and gives several different ways to describe each object. Starting with a quadratic homogeneous parametrization in [u_{0} : u_{1} : u_{2}], a homogeneous implicit equation can be derived. This procedure is called "elimination of parameters," and I used the algebra program Macaulay. Then, the inhomogeneous implicit equation is given, in the affine coordinates x=x_{1}/x_{0}, y= x_{2}/x_{0}, z=x_{3}/x_{0}. There are also parametrizations by trigonometric or other functions, which are more efficient for parametrizing the whole surface, instead of just a patch.
Some of the parametric surfaces have selfintersections along line segments, called double lines. When the parameters are eliminated to get the implicit equation, there are some "extra solutions": points which satisfy the implicit equation, but which do not appear as images of the parametric maps. These extra solutions extend the line segments to infinite lines, and appear as "whiskers" sticking out of the surface. (In general, if a line meets a quartic at more than four points, then the line must be contained completely inside the quartic.) In the POV code, some of the whiskers have been clipped off, and some are already invisible because the rays that reflect off the surface miss these lines entirely.
I've posted some code, which at least has worked for me, using a Gateway 2000 E3100 computer. The Maple code worked with Maple V Release 4 Version 4.00b. The commandwith(plots); invokes the Maple graphics package, and then the plot3d, display3d and animate3d can be displayed in a new Maple window where one can rotate, color, and otherwise manipulate the surfaces in space.
The POVRay implementation was based on similar web sites, and was developed using POVRay™ Version 3.1a.watcom.win32. Click on the small picture to get a larger picture. The code for the larger picture is available as a .txt file. The POV program uses the affine implicit equation of the surface, instead of the parametric plot used by Maple.
I would be glad to hear about any use you find for this page, including pictures you make and post to the WWW. I will also entertain questions and suggestions. My email is CoffmanA (at) ipfw.edu; you can acknowledge this resource by citing our CAGD paper or linking to this URL: http://new.ipfw.edu/departments/coas/depts/math/coffman/steinersurface.html  this replaces the now obsolete address, "http://www.ipfw.edu/math/Coffman/steinersurface.html".
Equations and Graphics
1.

POV code

Steiner's Roman Surface. Three double lines, six pinch points, and a triple point. For a few more images, see my graphics gallery.
 homogeneous parametrization: [u_{0}^{2}+u_{1}^{2}+u_{2}^{2} : u_{1}u_{2} : u_{0}u_{2} : u_{0}u_{1}]
 homogeneous implicit: x_{1}^{2}x_{2}^{2}x_{0}x_{1}x_{2}x_{3}+x_{1}^{2}x_{3}^{2}+x_{2}^{2}x_{3}^{2}
 affine implicit: x^{2}y^{2}+x^{2}z^{2}+y^{2}z^{2}xyz = 0
 affine trig parametrization: x=r^{2}sin(t)cos(t), y=rsin(t)(1r^{2})^{(1/2)}, z=rcos(t)(1r^{2})^{(1/2)}, 0<=r<=1, 0<=t<=2Pi.
 plot3d([r^2*sin(t)*cos(t), r*sin(t)*(1r^2)^(1/2), r*cos(t)*(1r^2)^(1/2)], r=0..1, t=0..2*Pi, numpoints=2500);

2.

POV code

This surface can be transformed into Steiner's Roman Surface, by a complex change of coordinates (transforming x to ix and z to iz interchanges the Type 1 and 2 implicit equations, where i^{2}=1). It can also be transformed into the Type 3 Crosscap by a complex transformation, but Types 1, 2, and 3 are not related by any real transformation. It has two real pinch points and three double lines meeting at a triple point, and, unlike the Roman or Cross Cap, is not compact in any affine neighborhood.
 homogeneous parametrization: [u_{0}^{2}u_{1}^{2}+u_{2}^{2} : u_{1}u_{2} : u_{0}u_{2} : u_{0}u_{1}]
 homogeneous implicit: x_{1}^{2}x_{2}^{2}x_{1}^{2}x_{3}^{2}+x_{2}^{2}x_{3}^{2}x_{0}x_{1}x_{2}x_{3}
 affine implicit: x^{2}y^{2}x^{2}z^{2}+y^{2}z^{2}xyz = 0
 affine trig parametrization: (requires two components)
 x=rcos(t)(r^{2}1)^{(1/2)}, y=r^{2}cos(t)sin(t), z=rsin(t)(r^{2}1)^{(1/2)}, r>=1, 0<=t<=2Pi,
 x=rcos(t)(r^{2}+1)^{(1/2)}, y=r^{2}cos(t)sin(t), z=rsin(t)(r^{2}+1)^{(1/2)}, r>=0, 0<=t<=2Pi.
 display3d({plot3d([r*cos(t)*(r^21)^(1/2), r^2*cos(t)*sin(t), r*sin(t)*(r^21)^(1/2)], r=1..1.5, t=0..2*Pi, numpoints=2500), plot3d([r*cos(t)*(r^2+1)^(1/2), r^2*cos(t)*sin(t), r*sin(t)*(r^2+1)^(1/2)], r=0..1, t=0..2*Pi, numpoints=2500)});

POV code

The linear transformation which interchanges the x_{0} and x_{2} coordinates gives another view of the Type 2 surface, where two of the double lines are on the plane at infinity. The double line connecting the two real pinch points is still visible in this affine neighborhood. Planes containing this double line intersect the surface along parabolas, so this representation has been called a "parabolic Steiner surface."
 homogeneous parametrization: [u_{0}u_{2} : u_{1}u_{2} : u_{0}^{2}u_{1}^{2}+u_{2}^{2} : u_{0}u_{1}]
 homogeneous implicit: x_{1}^{2}x_{0}^{2}x_{1}^{2}x_{3}^{2}+x_{0}^{2}x_{3}^{2}x_{2}x_{1}x_{0}x_{3}
 affine implicit: x^{2}x^{2}z^{2}+z^{2}xyz = 0
 affine trig parametrization: x=rcos(t), y=sec(t)csc(t)r^{2}cos(t)sin(t), z=rsin(t), r>=0, 0<=t<=2Pi.
 plot3d({[r*cos(t), sec(t)*csc(t)r^2*cos(t)*sin(t), r*sin(t)], [r*cos(t+Pi/2), sec(t+Pi/2)*csc(t+Pi/2)r^2*cos(t+Pi/2)*sin(t+Pi/2), r*sin(t+Pi/2)]}, r=3..3, t=0.1..Pi/20.1);

3.

POV code

Steiner's Cross Cap. (equations from F. Apéry's book) One real double line is visible, but there are also two complex double lines, which would only be visible after a complex coordinate change, resulting in a Type 1 or 2 surface. There are two real pinch points, which curve in different directions (see the patches in the larger picture). It's also known as the CrossCap or Crosscap, and the pinch points are also called crosscap singularities or Whitney singularities.
 homogeneous parametrization: [u_{0}^{2}+u_{1}^{2}+u_{2}^{2} : u_{1}u_{2} : 2u_{0}u_{1} : u_{0}^{2}u_{1}^{2}]
 homogeneous implicit: 4x_{1}^{2}(x_{1}^{2}+x_{2}^{2}+x_{3}^{2}+x_{0}x_{3})+x_{2}^{2}(x_{2}^{2}+x_{3}^{2}x_{0}^{2})
 affine implicit: 4x^{2}(x^{2}+y^{2}+z^{2}+z)+y^{2}(y^{2}+z^{2}1) = 0
 affine trig parametrization: x=rsin(t)(1r^{2})^{(1/2)}, y=2rcos(t)(1r^{2})^{(1/2)}, z=1+r^{2}+r^{2}cos(t)^{2}, 0<=r<=1, 0<=t<=2Pi.
 plot3d([r*sin(t)*(1r^2)^(1/2), 2*r*cos(t)*(1r^2)^(1/2), 1+r^2+r^2*cos(t)^2], r=0..1, t=0..2*Pi, numpoints=2500);

4.

POV code

Two of the three double lines in the Type 2 surface here coincide, forming a "tacnodal" line, along which two neighborhoods of this noncompact surface appear to be tangent. This line contains one of the two pinch points, and the remaining double line connects the two pinch points.
 homogeneous parametrization: [u_{0}^{2}u_{1}^{2}+u_{2}^{2} : u_{2}^{2}u_{1}^{2} : u_{1}u_{2} : u_{0}u_{1}]
 homogeneous implicit: x_{0}^{2}x_{2}^{2}2x_{0}x_{1}x_{2}^{2}x_{0}x_{1}x_{3}^{2}+x_{1}^{2}x_{2}^{2}+x_{1}^{2}x_{3}^{2}x_{3}^{4}
 affine implicit: y^{2}2xy^{2}xz^{2}+x^{2}y^{2}+x^{2}z^{2}z^{4} = 0
 affine trig parametrization: (requires two components)
 x=1r^{2}cos(t)^{2}, y=rsin(t)(r^{2}1)^{(1/2)}, z=rcos(t)(r^{2}1)^{(1/2)}, r>=1, 0<=t<=2Pi,
 x=1+r^{2}cos(t)^{2}, y=rsin(t)(r^{2}+1)^{(1/2)}, z=rcos(t)(r^{2}+1)^{(1/2)}, r>=0, 0<=t<=2Pi.
 display3d({plot3d([1r^2*cos(t)^2, r*sin(t)*(r^21)^(1/2), r*cos(t)*(r^21)^(1/2)], r=1..2^(1/2), t=0..2*Pi, numpoints=2500), plot3d([1+r^2*cos(t)^2, r*sin(t)*(r^2+1)^(1/2), r*cos(t)*(r^2+1)^(1/2)], r=0..1, t=0..2*Pi, numpoints=2500)});

5.

POV code

Two of the three double lines in Steiner's Roman Surface here coincide, forming a tacnodal line meeting the other double line in a "T" shape, and four singularities at the segment endpoints. It is related to the previous surface by complex but not real transformations.
 homogeneous parametrization: [u_{0}^{2}+u_{1}^{2}+u_{2}^{2} : 2u_{0}u_{2} : 2u_{0}u_{1} : u_{0}^{2}u_{1}^{2}+u_{2}^{2}]
 homogeneous implicit: x_{0}^{2}x_{1}^{2}x_{0}^{2}x_{2}^{2}2x_{0}x_{1}^{2}x_{3}+x_{2}^{4}+x_{1}^{2}x_{3}^{2}+x_{2}^{2}x_{3}^{2}
 affine implicit: x^{2}(z1)^{2}+y^{2}(y^{2}+z^{2}1) = 0
 affine trig parametrization: x=2rcos(t)(1r^{2})^{(1/2)}, y=2rsin(t)(1r^{2})^{(1/2)}, z=12r^{2}cos(t)^{2}, 0<=r<=1, 0<=t<=2Pi.
 plot3d([2*r*cos(t)*(1r^2)^(1/2), 2*r*sin(t)*(1r^2)^(1/2), 12*r^2*cos(t)^2], r=0..1, t=0..2*Pi, numpoints=2500);

6.

POV code

The three double lines of Steiner's Roman Surface coincide, forming an "oscnodal" line. I call this type the "Cross Cup," since it resembles the Cross Cap, but with the double line tangent to the surface.
 homogeneous parametrization: [u_{0}^{2}+2u_{1}^{2}+u_{2}^{2} : 2u_{1}^{2}+u_{2}^{2} : u_{2}^{2}+2u_{0}u_{2} : u_{1}u_{2}+u_{0}u_{1}]
 homogeneous implicit:
x_{0}^{3}x_{1}13/4x_{0}^{2}x_{1}^{2}+7/2x_{0}x_{1}^{3}5/4x_{1}^{4}+5/2x_{0}^{2}x_{1}x_{2}11/2x_{0}x_{1}^{2}x_{2} +3x_{1}^{3}x_{2}1/4x_{0}^{2}x_{2}^{2}+5/2x_{0}x_{1}x_{2}^{2}5/2x_{1}^{2}x_{2}^{2}1/2x_{0}x_{2}^{3}+x_{1}x_{2}^{3}1/4x_{2}^{4} 2x_{0}^{2}x_{3}^{2}+5x_{0}x_{1}x_{3}^{2}3x_{1}^{2}x_{3}^{2}3x_{0}x_{2}x_{3}^{2}+4x_{1}x_{2}x_{3}^{2}x_{2}^{2}x_{3}^{2}x_{3}^{4}
 affine implicit:
5/4x^{4}+3x^{3}y5/2x^{2}y^{2}+xy^{3}1/4y^{4}3x^{2}z^{2}+4xyz^{2}y^{2}z^{2}z^{4} +7/2x^{3}11/2x^{2}y+5/2xy^{2}1/2y^{3}+5xz^{2}3yz^{2}13/4x^{2}+5/2xy 1/4y^{2}2z^{2}+x = 0
 affine trig parametrization: x=1r^{2}+r^{2}sin(t)^{2}, y=r^{2}sin(t)^{2}+2r^{2}sin(t)cos(t), z=((1r^{2})/2)^{(1/2)}r(sin(t)+cos(t)), 0<=r<=1, 0<=t<=2Pi.
 plot3d([1r^2+r^2*sin(t)^2, r^2*sin(t)^2+2*r^2*sin(t)*cos(t), ((1r^2)/2)^(1/2)*r*(sin(t)+cos(t))], r=0..1, t=0..2*Pi, numpoints=2500);

7.

POV code

Quadratically parametrized surfaces can also have cubic implicit equations. The surfaces turn out to be ruled by lines. There are trigonometric parametrizations, but also convenient algebraic parametrizations. This cubic surface has a double line and no pinch points. It is sometimes called Zindler's conoid.
 homogeneous parametrization: [u_{1}^{2}u_{2}^{2} : u_{1}u_{2} : u_{0}u_{1} : u_{0}u_{2}]
 homogeneous implicit: x_{1}x_{2}^{2}x_{0}x_{2}x_{3}x_{1}x_{3}^{2}
 affine implicit: xy^{2}yzxz^{2} = 0
 affine algebraic parametrization: (requires two components)
 x=v(v^{2}+1)^{(1/2)}, y=u(v^{2}+1)^{(1/2)}, z=uv, u, v real,
 x=v(v^{2}+1)^{(1/2)}, y=uv, z=u(v^{2}+1)^{(1/2)}, u, v real.
 plot3d({[v*(1+v^2)^(1/2), u*(1+v^2)^(1/2), u*v], [v*(1+v^2)^(1/2), u*v, u*(1+v^2)^(1/2)]}, u=4..4, v=4..4);

8.


This ruled cubic has a double line connecting two pinch points. Here are two representatives of Type 8. 
POV code

In this affine neighborhood, only one of the two pinch points is visible. The other is "at infinity." This affine variety is the classic Whitney's Umbrella. There is another image on my graphics gallery page.
 homogeneous parametrization: [u_{2}^{2} : u_{0}u_{1} : u_{0}u_{2} : u_{1}^{2}]
 homogeneous implicit: x_{0}x_{1}^{2}x_{2}^{2}x_{3}
 affine implicit: x^{2}y^{2}z = 0
 affine quadratic parametrization: x=uv, y=u, z=v^{2}, u, v real.
 plot3d([u*v, u, v^2], u=2..2, v=2..2);

POV code

The linear transformation which changes the x_{0} coordinate to x_{0}x_{3} shows both pinch points in the x_{0}=1 affine neighborhood. The surface is called Plücker's Conoid.
 homogeneous parametrization: [u_{1}^{2}+u_{2}^{2} : u_{0}u_{1} : u_{0}u_{2} : u_{1}^{2}]
 homogeneous implicit: (x_{0}x_{3})x_{1}^{2}x_{2}^{2}x_{3}
 affine implicit: (1z)x^{2}y^{2}z = 0
 affine algebraic parametrization: x=u(1v^{2})^{(1/2)}, y=uv, z=1v^{2}, u real, 1<=v<=1.
 plot3d([u*v, u*(1v^2)^(1/2), 1v^2], u=2..2, v=1..1);

9.

POV code

Cayley's ruled cubic has a double line and a singularity called a "unode," which is not a pinch point.
 homogeneous parametrization: [u_{0}u_{1} : u_{0}u_{2}u_{1}^{2} : u_{1}u_{2} : u_{2}^{2}]
 homogeneous implicit: x_{2}^{3}+x_{1}x_{2}x_{3}x_{0}x_{3}^{2}
 affine implicit: y^{3}+xyzz^{2} = 0
 affine cubic parametrization: x=uv, y=uv, z=u^{2}v, u, v real.
 affine trig parametrization: x=rsin(t)rcos(t), y=r^{2}sin(t)cos(t), z=r^{3}sin(t)^{2}cos(t), r>=0, 0<=t<=2Pi;
 plot3d([r*sin(t)r*cos(t), r^2*sin(t)*cos(t), r^3*sin(t)^2*cos(t)], r=0..0.5, t=0..2*Pi, numpoints=1000);

POV code

The linear transformation which changes the x_{0} coordinate to x_{0}+x_{1} gives another view of Cayley's ruled surface.
 homogeneous parametrization: [u_{0}u_{1}+u_{0}u_{2}u_{1}^{2} : u_{0}u_{2}u_{1}^{2} : u_{1}u_{2} : u_{2}^{2}]
 homogeneous implicit: x_{2}^{3}+x_{1}x_{2}x_{3}x_{0}x_{3}^{2}x_{1}x_{3}^{2}
 affine implicit: y^{3}+xyz(1+x)z^{2} = 0
 affine rational parametrization: x=(z^{2}y^{3})/(yzz^{2}), z and yz nonzero.
 plot3d((z^2y^3)/(z*yz^2), y=2.05..3, z=2.55..3, view=5..5, numpoints=1000);

10.
Quadric Cases 

Some quadric varieties can also be parametrized by homogeneous quadratic polynomials. For example, the sphere :
 homogeneous parametrization: [u_{0}^{2}+u_{1}^{2}+u_{2}^{2} : 2u_{0}u_{2} : 2u_{0}u_{1} : u_{0}^{2}u_{1}^{2}u_{2}^{2}]
 homogeneous implicit: x_{0}^{2}x_{1}^{2}x_{2}^{2}x_{3}^{2}
 affine implicit: x^{2}+y^{2}+z^{2}1 = 0
 affine trig parametrization: x=2rsin(t)(1r^{2})^{(1/2)}, y=2rcos(t)(1r^{2})^{(1/2)}, z=12r^{2}, 0<=r<=1, 0<=t<=2Pi.
 plot3d([2*r*sin(t)*(1r^2)^(1/2), 2*r*cos(t)*(1r^2)^(1/2), 12*r^2], r=0..1, t=0..2*Pi, numpoints=2500);
For a few more (projectively inequivalent) quadric surfaces parametrized by quadratic polynomials, see the page on affine surfaces. 
The main theorem in our paper on Steiner surfaces is that the above possibilities are essentially the only ones. A surface parametrized by homogeneous quadratic polynomials is either one of the types 19 above (the parametric map is related to one of the above examples by some real projective linear change of coordinates), or it is contained in a quadric surface, or it is a projection into two or fewer dimensions, so the image is contained in a plane. The complex classification, which was previously known, gives fewer equivalence classes: (1,2,3), (4,5), (6), (7,8), (9), and the quadric and lowerdimensional cases.
POV include file: a .txt file summarizing the implicit equations used in the above graphics, in POV format.
Animation
Here's some POV code for making an animation sequence, and the animated .gif files I assembled using Animation Shop 1.02 by Jasc Software. Click on the square to load an animated gif
Animations of Steiner Surfaces

916KB gif
POV scene file
POV ini file

The Steiner Roman Surface, rotating around one of its double lines. 
215KB gif
POV scene file
POV ini file

The Steiner CrossCap Surface. The linear transformation(x_{0},x_{3}) > (cos(t)x_{0}+sin(t)x_{3},sin(t)x_{0}+cos(t)x_{3})is just a rotation of the (x_{0},x_{1},x_{2},x_{3}) space by angle t, but as the animation cycles, the right edge of the surface meets the "plane at infinity," x_{0}=0, and then reappears on the left. All the frames show a Type 3 surface; they are equivalent under the linear classification, and look different only because the choice of affine neighborhood is changing. 
278KB gif
POV scene file
POV ini file

Several different Steiner surfaces. Unlike the above two, which were different views of the same object, in this animation, the object is deforming from one type of Steiner surface to another. The idea is that Types 1, 2, and 3 are stable under perturbation of the parametric equations, and that the Types 410 are unstable intermediate cases. In the following equations, the timedependent quantities are p=cos(t)/sqrt(3) and q=sin(t), 0<=t<=2Pi. The variety is a sphere when p+q=0 (two solutions for t, so two frames), a Type 5 when p=q or p=0 (four frames), and a Roman or CrossCap surface for all other values of t. Note the similarity of the homogeneous parametrization with the previous section's equations for Types 5 and 10.
 homogeneous parametrization: [u_{0}^{2}+u_{1}^{2}+u_{2}^{2} : 2u_{0}u_{2} : 2u_{0}u_{1} : 2(pu_{0}^{2}pu_{1}^{2}+qu_{2}^{2})]
 affine implicit: (12pq2p^{2})x^{4}+4pqx^{2}4p^{2}y^{2}+4(p^{2}pq)x^{2}y^{2}+4p^{2}y^{4}2(p+q)x^{2}z+x^{2}z^{2}+y^{2}z^{2} = 0
Here's some Maple code, showing some of the frames in this loop, parametrized by real numbers e instead of the periodic functions p(t), q(t). Varying the parameter egives a Cross Cap for e < 0, the sphere for e = 0, the Cross Cap again for e between 0 and 2, surface #5 when e = 2, and the Roman Surface for e > 2.
 animate3d([2*r*sin(t)*(1r^2)^(1/2), 2*r*cos(t)*(1r^2)^(1/2), 1+2*r^2r^2*sin(t)^2*e], r=0..1, t=0..2*Pi, e=2..4, frames=10);

822KB gif
POV scene file
POV ini file

Another deformation of Steiner surfaces. As in the previous animation, the coefficients of the parametric equations depend on another parameter t, 0<=t<=2Pi, and most of the surfaces are either the Type 2, which is not compact in any affine neighborhood, or the Cross Cap, which in this affine neighborhood appears as two components that could be separated by a flat plane. The quantities p=cos(t)/sqrt(3) and q=sin(t) are used again in the following equations. When p=0 (for two frames), the equations define a hyperboloid of two sheets, and when p+q=0 or pq=0 (for four frames), the surface is a Type 4.
 homogeneous parametrization: [u_{0}^{2}+u_{1}^{2}u_{2}^{2} : 2pu_{1}^{2}+(qp)u_{2}^{2} : u_{1}u_{2} : u_{0}u_{2}]
 affine implicit: 2(pqp^{2})y^{2}+(3pq)xy^{2}x^{2}y^{2}+(1+2pq2p^{2})y^{4}+(pq)xz^{2}x^{2}z^{2}+(28p^{2})y^{2}z^{2}+(12pq2p^{2})z^{4} = 0
 display3d({animate3d([r^2*sin(t)^2(1+e)*(r^21), r*sin(t)*(r^21)^(1/2), r*cos(t)*(r^21)^(1/2)], r=1..1.4, t=0..2*Pi, e=2..1, frames=10), animate3d([(r^2*sin(t)^2(1+e)*(r^2+1)), r*sin(t)*(r^2+1)^(1/2), r*cos(t)*(r^2+1)^(1/2)], r=0..1, t=0..2*Pi, e=2..1, frames=10)});

The Boy Surface

557KB gif
POV scene file
POV ini file


The Boy Surface is named after Werner Boy, who discovered this immersion of the real projective plane in three dimensions. It can be realized as a real algebraic variety of degree six, unlike a Steiner Surface which has degree at most four. It has a triple point, like the Roman Surface, but no pinch points. The photo shows the sculpture at Oberwolfach. The animation demonstrates F. Apéry's homotopy, where the equations of the surfaces depend on t, 0<=t<=1. The parametric equations are fourth degree, except that at t=0, the (u_{0}^{2}+u_{1}^{2}) quantity can be canceled from each of the four components, so the t=0 surface is a quadratically parametrized Steiner surface (Type 1). The implicit equations are sixth degree, but again at t=0, the polynomial factors into a Steiner quartic and z^{2}. The z^{2} factor defines the xyplane, but it is not in the image of the parametric equations  it's a locus of extra solutions from the implicitization, just like the whiskers in the still pictures, and it is not included in the animation sequence. The image of Apéry's quartic parametrization of Boy's surface is the t=1 sextic variety, without any extra implicit solutions. 
 homogeneous parametrization (s=sqrt(2)): [(u_{0}^{2}+u_{1}^{2})(u_{0}^{2}+u_{1}^{2}+u_{2}^{2})+stu_{1}u_{2}(3u_{0}^{2}u_{1}^{2}) : (u_{0}^{2}+u_{1}^{2})(su_{0}^{2}su_{1}^{2}+2u_{0}u_{2})/3 : 2(u_{0}^{2}+u_{1}^{2})(su_{0}u_{1}u_{1}u_{2})/3 : (u_{0}^{2}+u_{1}^{2})^{2}]
 affine implicit: 24z^{6} + 48z^{5}  32z^{4} + 64z^{3}/9  16y^{2}z^{2}  16z^{2}x^{2}  81y^{6}t^{2}  81x^{6}t^{2}  (144t^{2} + 36)y^{2}z^{2}x^{2} + (72st^{2}  72s)y^{2}z^{2}x + (24s  24st^{2})z^{2}x^{3}  (18 + 72t^{2})y^{4}z^{2} + (24  24t^{2})y^{2}z^{3} + (24  24t^{2})z^{3}x^{2}  (18 + 72t^{2})z^{2}x^{4} + (54st^{3}  54st)zy^{5}  (36st + 12st^{3})z^{3}y^{3} + (108st  108st^{3})x^{2}zy^{3} + (108st + 36st^{3})x^{2}z^{3}y + (162st  162st^{3})x^{4}zy + 72sy^{2}z^{3}x + 48sy^{3}z^{2}t  144syz^{2}x^{2}t  324sy^{4}zxt^{2}  216sy^{2}zx^{3}t^{2} + 36y^{4}zt^{2}  243y^{2}x^{4}t^{2} + 36z^{4}x^{2}t^{2}  243y^{4}x^{2}t^{2} + 36zx^{4}t^{2}  24sz^{3}x^{3} + 36y^{2}z^{4}t^{2} + 108szx^{5}t^{2} + 72y^{2}zx^{2}t^{2}= 0
 affine implicit, when t=0: z^{2}(24z^{4} + 48z^{3}  32z^{2}  18y^{4} + 24y^{2}z  16y^{2} + 24zx^{2}  16x^{2}  18x^{4}  36y^{2}x^{2} + 24sx^{3}  24zsx^{3} + 72zsy^{2}x  72sy^{2}x + 64z/9) = 0

POV code

 affine implicit, when t=1: 36zy^{4} + 36x^{2}z^{4} + 36x^{4}z  243x^{4}y^{2}  243x^{2}y^{4} + 36z^{4}y^{2} + 72x^{2}zy^{2}  48sz^{3}y^{3} + 72sy^{2}z^{3}x  90y^{4}z^{2}  16y^{2}z^{2}  16z^{2}x^{2}  90z^{2}x^{4}  81y^{6}  24z^{6}+ 48z^{5}  32z^{4} + 64z^{3}/9  81x^{6}  180y^{2}z^{2}x^{2}  24sz^{3}x^{3} + 48sy^{3}z^{2}  144syz^{2}x^{2}  324sy^{4}zx  216sy^{2}zx^{3} + 108szx^{5} + 144sx^{2}z^{3}y = 0
 plot3d([(1+r^2*cos(T)^2)*(sqrt(2)sqrt(2)*r^2*cos(T)^2+2*r*sin(T)) / (3*(1+r^2*cos(T)^2)*(1+r^2*cos(T)^2+r^2*sin(T)^2) + 3*sqrt(2)*r^2*cos(T)*sin(T)*(3r^2*cos(T)^2)), 2*(1+r^2*cos(T)^2)*(sqrt(2)*r*cos(T)  r^2*cos(T)*sin(T)) / (3*(1+r^2*cos(T)^2)*(1+r^2*cos(T)^2+r^2*sin(T)^2) + 3*sqrt(2)*r^2*cos(T)*sin(T)*(3r^2*cos(T)^2)), (1+r^2*cos(T)^2)^2 / ((1+r^2*cos(T)^2)*(1+r^2*cos(T)^2+r^2*sin(T)^2) + sqrt(2)*r^2*cos(T)*sin(T)*(3r^2*cos(T)^2))], r=0..10, T=0..2*Pi, numpoints=2000);

Web Sites
Links related to Steiner surfaces :
Software:
Books:
Academic papers, abstracts, etc.:
 Adam Coffman, Art Schwartz, C. Stanton, Computer Aided Geometric Design article
 A. Adler, "cubic surfaces" newsgroup post
 F. Aries, E. Briand, C. Bruchou, "Some covariants related to Steiner surfaces"
 D. Breen, publications
 A. de Cusatis Jr., L. Henrique de Figueiredo, M. Gattass, "Interval methods..." Proc. SIBGRAPI'99 reprint
 H. Farran, M. do Rosario Pinto, S. Robertson, "Symmetric Models..." BzA&G reprint
 F. HalterKoch and G. Lettl, "Polynomial parametrization of systems of Diophantine equations"
 S. Klimenko, I. Nikitin, V. Burkin, Visualization Proceedings article
 R. Krasauskas, Shape of toric surfaces
 J. Peters, U. Reif, "Quadratic Surfaces..." CAGD reprint
 C. Rourke, B. Sanderson, "The Compression Theorem" reprint
 J. Schicho, "Multiple Conical Surfaces" BzA&G reprint
 H.P. Schröcker, "A Family of Conics and Three Special Ruled Surfaces" BzA&G reprint
 T. Sederberg, publications
 S. Zube, publications

Links to pictures of Steiner surfaces:
 The Geometry Center
 J. Baez, Klein's Quartic
 P. Bourke, Geometry
 S. Endraß, Surf gallery
 Z. Fiedorowicz, (Topological) Classification of Surfaces
 P. Fur Mat, Approximate Cat
 W. Gu, Curves and Surfaces library
 H. Hauser, Singularities pictures and animation
 H. Havlicek, Veronese varieties
 B. Hunt, Algebraic Surfaces
 A. Lipson, Mathematical Lego Sculptures
 J.L. Maltret, Mathématiques et Informatique Graphique
 T. Nordstrand, surface gallery, in particular, raytraced Steiner surfaces of types 1, 2, 3, 4.
 R. Palais, 3D XplorMath
 S. Popescu, Algebraic Topology
 J. Ruiz, exhibition
 C. Séquin, graphics and sculpture
 J. Tunnell, Rutgers Math 535
 M. Williams, Isosurface Tutorial
 UIUC display case with Plaster Models
 NYIT Computer Graphics Lab pictures
 U. Texas, Computational Visualization Center
 U. Torino, I Modelli

Back to Adam Coffman's page