The applet shown here displays two surfaces in an opaque, faceted form. The surfaces are a hyperbolic paraboloid ( blue), given by the equation *z *= (*x*^{2 }- *y*^{2} )/8, and a circular paraboloid ( red), given by the equation *z *= (*x*^{2 }+ *y*^{2})/4 - 5. All three coordinate axes are drawn with bounds -10 to 10.

The graph can be rotated in the applet by clicking and dragging the mouse on the graph. As you rotate the graph, look closely at the intersection of the two surfaces. Most of the problems with this mode of presenting the surfaces appear at or near this intersection. First, the intersection is not very precise -- the edges of the facets give the intersection a polygonal appearance, whereas the actual intersection is a smooth (i.e. differentiable) closed curve in space. Indeed, constructing a parameterization for that curve is a reasonable vector calculus problem. The second apparent problem is that partial facets seem to appear in places where they shouldn't -- corners of facets from one surface seem to poke through the other surface.

The method used to present these surfaces in the applet is a compromise, but a somewhat necessary compromise. If you rotate the graph quickly, you may notice that the rotations seem to stall briefly, and the surfaces may even sometimes appear to "crack." This happens because the browser's applet runtime environment cannot keep up with the rapid updates needed for fast rotations. More precise methods for presenting surfaces are available, but they would have even more trouble keeping up with fast rotations, because the greater precision would make heavier demands on the runtime environment.

So this article's puzzle is about that compromise: how this faceted presentation is accomplished, what problems arise with it, and why it really isn't a good idea to fix the problems. Describing the faceted presentation method and its problems will involve interesting aspects of three-dimensional geometry. The comparison between this method and more precise methods will include just a taste of computational complexity.