“In animation you’re not necessarily trying to model the physical world perfectly; the model only has to be good enough to convince your eye,” explains lead author Moritz Bächer, a graduate student in computer science at SEAS. “In a virtual world, you have all this freedom that you don’t have in the physical world. You can make a character so anatomically skewed that it would never be able to stand up in real life, and you can make deformations that aren’t physically possible. You could even have a head that isn’t attached to its body, or legs that occasionally intersect each other instead of colliding.”
Returning a virtual character to the physical world therefore turns the traditional animation process on its head, in a sort of reverse rendering, as the image that’s on the screen must be adapted to accommodate real-world constraints.
Bächer and his coauthors demonstrated their new method using characters from Spore, an evolution-simulation video game. Spore allows players to create a vast range of creatures with numerous limbs, eyes, and body segments in almost any configuration, using a technique called procedural animation to quickly and automatically animate whatever body plan it receives. As with most types of computer animation, the characters themselves are just “skins”–meshes of polygons–that are manipulated like marionettes by an invisible skeleton.
“As an animator, you can move the skeletons and create weight relationships with the surface points,” says Bächer, “but the skeletons inside are non-physical with zero-dimensional joints; they’re not useful to our fabrication process at all. In fact, the skeleton frequently protrudes outside the body entirely.”
Bächer tackled the fabrication problem with his Ph.D. adviser, Hanspeter Pfister, Gordon McKay Professor of Computer Science at SEAS. They were joined by Bernd Bickel and Doug James at the Technische Universität Berlin and Cornell University, respectively.
This team of computer graphics experts developed a software tool that achieves two things: it identifies the ideal locations for the action figure’s joints, based on the character’s virtual articulation behavior, and then it optimizes the size and location of those joints for the physical world. For instance, a spindly arm might be too thin to hold a robust joint, and the joints in a curving spine might collide with each other if they are too close.
The software uses a series of optimization techniques to generate the best possible model, incorporating both hinges and ball-and-socket joints. It also builds some friction into these surfaces so that the printed figure will be able to hold its poses.
The tool also perfects the model’s skin texture. Procedurally animated characters tend to have a very roughly defined, low-resolution skin to enable rendering in real time. Details and textures are typically added through a type of virtual optical illusion: manipulating the normals that determine how light reflects off the surface. In order to have these details show up in the 3D print, the software analyzes that map of normals and translates it into a realistic surface texture.
Then the 3D printer sets to work, and out comes a fully assembled, robust, articulated action figure, bringing the virtual world to life.