Manifolds in Computer Graphics

Summary

We've applied manifolds in graphics to understand the interpolation of curves in quaternion space, to construct shapes from abstract descriptions, to represent shapes in our sketch-based modeling work, and to parameterize higher-genus surfaces via SL2(R).

Project goals

The current goal of our work in manifolds is to build the appropriate tools for constructing and editing and generally manipulating meshes that approximate smooth manifolds.

Discussion

Manifolds have been one of the most misunderstood topics in graphics (and in computer science in general). The fault, in part, lies in the way they're described in mathematics, where it's typical to say "Start with a topological space, and then put a manifold structure on it." The space itself is usually a subset of euclidean space (e.g., the circle in the plane, or a torus in 3-space). Because of this, students tend to not see the manifold as an independent entity, but only as an embedded subset of euclidean space. The distinction between the thing and its embedding is lost. And the Whitney embedding theorem makes things worse: it proves that every (closed, compact) manifold CAN be embedded.

Nonetheless, they can be studied and applied quite generally. Our early work on interpolating quaternions is an exmaple. And there are lovely applications still waiting to happen, especially in areas like studying the manifold (generally) of possible states of a jointed figure, for instance.

Open Questions

One thing I've been wanting to try out for years is this: it's known that the space GL+(2,4) of oriented 2-splanes in 4-space is topologically equivalent to the Cartesian product of two spheres. It should therefore be possible to navigate in this space with a pair of joysticks (with the range of each expanded so that the limiting circle corresponds to the south pole, while the neutral positive is the north pole). For each 2-plane in 4-space, we can consider "projection onto the plane", and thus use the twin joysticks as a kind of view-control for 4-space. Unfortunately, this isn't quite complete: we need not only a plane, but a chosen vector in the plane, to serve as the "horizontal" axis for our view. Given two nearly planes, and a horizontal vector, h, in the first, one can choose, as the horizontal vector in the second, the vector k that's closest to h.

Unfortunately, this cannot be done consistently for the whole of GL(2,4) at once, so it's possible that as one cruises through 4-space, one may return to the same "view", but find it has spun about the center of the view. Is this a problem? I'm not sure. Someday I'd like to try it.

Papers