Definition
Let p_{0}, p_{1}, p_{2}, p_{3} be
quadratic polynomials in two variables u, v. This means each
p_{i} is of the form
p_{i}(u,v)=Au^{2}+Buv+Cv^{2}+Du+Ev+F
for constant coefficients A, B, C, D, E, F. The parametric plot
(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 coordinate system for real 3space with axes labeled
u_{0}, u_{1}, u_{2}, 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}].
(Note that the map is welldefined! Changing the input vector by multiplying by a nonzero scalar gives an output vector also changed only by scalar multiplication.)
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 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" (or "umbrella handles")
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 light 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 command with(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 internet graphics
galleries, 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) pfw.edu
 you can acknowledge this resource by citing our CAGD paper or
linking to this
URL: http://users.pfw.edu/CoffmanA/steinersurface.html
 as of Summer 2018, this replaces some now obsolete addresses at
IPFW and Chicago.
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 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.:
 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
 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
More Links
 Adam
Coffman, Art
Schwartz, C. Stanton, 1996 article, The
algebra and geometry of Steiner and other quadratically parametrizable
surfaces
 Google Scholar Citations for the CAGD article
 Google Scholar Citations for this Steiner Surfaces web page
 Google Books about Steiner surfaces
 ACM Digital Library page
 A. Coffman, A Classification of Quadratically Parametrized
Maps of the Real Projective Plane, B.S. Honors Thesis,
University of Michigan, Ann Arbor, 1991.
 Retypeset, added update sections, and posted online in
2018: 37 pages + 10 Figures.
 A. Schwartz and C. Stanton, Classification of Steiner Surfaces, unpublished notes from 1988, available from me on request.
 More papers by Adam Coffman

Back to Adam Coffman's page