You've probably seen image morphing. But how about surface morphing? The processes are similar in many ways: you establish a correspondence between two surfaces, and then describe the interpolation between them that realizes the transformation. However, things can get a bit tricky with surfaces if they differ in topology.
Briefly, the topology of a surface is a global property describing how different parts of the surface are connected to each other. Different patterns of connection can give rise to features like holes. So a sphere and a torus (a doughnut) are topologically distinct. The problem is, mathematically, that it's not possible to establish an invertible correspondence between a sphere and torus. (Remember that building a correspondence is the first step in producing a morph.)
We side-step this problem by specifying a correspondence between two surfaces which allows for topological discrepancies. Briefly, we construct a new shape from which surjective maps can be formed onto the two surfaces, and maintain an intermediate shape which has the appropriate locations of this new surface glued together. This is demonstrated in the following transformations between a sphere and torus.
The first transformation here has been called (by Koenderink) ``sphere pinching'', and the second ``torus strangling''. In both cases, the poles of the sphere (where the blue and green lines meet) are being brought together. Yet the resulting tori are different: one has the lines going through the hole, and the other has these lines going around the hole! This means that these two transformations are topologically distinct.
Here is a wacky example, where a banana morphs to an object with two holes and a border. (No, this object isn't really anything in particular - ask Will Welch. He made it, after all).
User control and interfaces
It's important that the animator has control over what the morph looks like. Without a personalized specification, the morphs will look unnatural or boring. As in image morphing, the animator specifies a correspondence between the two objects being morphed - a specification of how features on one object end up on the other object.
The example above shows three different morphs between a banana and orange where the user varies the size of the region on the orange that corresponds to the banana stem. Notice how banana stem can be made larger or smaller.
The user specifies the transformation with the user interface shown below (which was motivated by the standard side-by-side image morphing interfaces).
The user creates a control mesh on top of each of the two shapes (the blue and red lines). Correspondences between faces of the control mesh induce correspondences between points on the objects; discrepancies between the structure of corresponding faces describe the topological evolution that must occur during the transformation. Given a correspondence, the shapes are interpolated (taking care not to rip the surface open).
This work is described in the following publication: