History of the Teapot – Interactive 3D Graphics
You may have noticed that there have been a few teapots in these lessons. I hope you like them because you’ll be seeing lots more of them as we go. The teapot model was created by Martin Newell, one of the pioneers of computer graphics. Among other accomplishments, he co-developed an early rendering method called the painter’s algorithm and did seminal work in the area of procedural modeling. He also founded the company Ashlar Incorporated, a computer aided design software firm. The model was inspired by a real live Melitta teapot, manufactured in 1974. Back then, there weren’t many good models to use for rendering, especially for displaying materials. Objects made of cubes, cylinders and spheres and so on, can only take you so far. In 1975, Martin Newell, at the University of Utah at the time, was talking about this problem with his wife, Sandra. They were just sitting down for tea, so she suggested that he model a tea set. He made a sketch of the silhouette on graph paper. The drawing represented a recognizable profile of a teapot. It doesn’t match the real world teapot. The spout and the knob on the lid are a bit different, for example. He described these curves by using what are called “cubic bezier splines.” A spline is a fancy word for a type of curve. These spline curves are formed by carefully placing a few points called “control points”. A surface is then formed by using spline curves in two different directions to define a patch. See the additional course materials to learn more about this process. To render these patches interactively, we often convert them into grids of triangles. This type of modelling is useful for creating all sorts of curved surfaces, such as car bodies. When Newell created the teapot, he also made some other models to create a whole set. Not half as well known, the tea cup and saucer make up a pretty nice little model. At least they look good from this angle. Well, not great though, there’s no shadow. So, the cup looks like it’s floating over the saucer. If you rotate the view, its secret is revealed. There’s a large hole in the middle of it. There’s also a teaspoon model, which is pleasing from any view. I was surprised by how easy it was to display these models, once I had my teapot demo working. The text files of patch data for the teacup and teaspoon are available on the web. The time stamp on these files is from 1991. Digital data doesn’t rot. A nice feature of using cubic beziers for the data description is that the text files were each around 8,000 bytes. For a lot of applications nowadays, that’s less than the size of an empty save file. Let’s get back to the teapot. Like the tea cup, the teapot also didn’t originally have a bottom. After all, a teapot is usually sitting on some tabletop, so doesn’t really need one most of the time. Four patches defining a bottom were added later by Frank Crow in 1987. Some graphics practitioners consider adding a bottom to be heresy. So, be careful about what choices you make and whom you show your teapots. One other obvious difference between the real world and virtual teapots is the vertical scale. Martin Newell shared his teapot data set with other researchers. His original sketch’s scale matches the real world teapot, but the computer graphics model evolve to be squatter. I’ve seen two stories in print about how this happened and being in print it makes it true, right? The more reputable one is that Jim Blinn, one of the early users of the teapot data set, decided that the teapot simply looked more pleasing when squished. The other story I’ve seen is that the display Blinn was working on didn’t have square pixels. Rather than mess with the camera’s transform, he decided to scale down the teapot vertically to compensate. I like this version a lot, since Blinn has a well-known quote of: “All it takes is for the rendered image to look right.” I asked Martin Newell about these two stories and he thinks the non-square pixels may have been the original reason, but that Blinn’s aesthetic sense could well have kept the model that way. Martin himself prefers the squat version. Speaking of looking right, there is a noticeable gap between the lid and the body of the teapot. I’ve taken the liberty in this course of widening the lid a bit, so that this gap is not noticeable. Shhh – don’t tell anyone. Blinn’s use of the teapot in his research popularized it and the size change stuck. The teapot is a great object to render for a number of reasons. First and foremost, we have a good mental model of what the teapot should look like, so can easily identify bugs. The curvature of the surface varies considerably, especially on the spout and handle, causing the shading to change in interesting ways. Some of the spline patches form a dense set of triangles, others less so, which gives some rendering algorithms a workout. Since the teapot is not some simple convex form, such as a block or cylinder, it casts a shadow on itself – another good test case. My small contribution to the cause was an open-source program that generated the teapot. This was back in the late 1980s, long before the term “open source” even existed. I ported this code to three.js for this course. Many people consider the teapot a standard model. Back in 1987, Jim Arvo created this classic image, showing the teapot as the 6th platonic solid, next to the tetrahedron, cube, and so on. Really, I’ve seen a lot more teapots rendered than I have dodecahedra. The teapot is an iconic object that is the symbol of 3D computer graphics. There are other famous models out there – the VW Bug, the Stanford bunny, the Sponza Palace. But the teapot is by far the most celebrated. Keep an eye out for it in the first “Toy Story” movie and in the Simpson’s 3D episode. If you want to see the real teapot in all its glory, it’s on display at the Computer History Museum in Mountain View, California. Now that you’re aware of the teapot, you’ll start to notice it popping up when you least expect it.