# Volume Deformation Techniques

## Motivation

I have been wondering about the limitations of the Free Form Deformation technique for a while. I eventually came to the conclusion that there is no way around the problem except to give the mesh object some skeleton and some sense of consistent volume.

Well, the true motivation is that I needed to graduate from my Master's program, so I had to pick a topic. But I picked volume deformation because it's something that fascinates me. I think of most real-time computer characters as a combination of "logs of wood." In other words, if you watch carefully of all video game characters, each body part of a character is disjoint from the others. From far away, this looks fine. However, when viewed up close, the seams between (for example) the upper arm and the torso makes the character look horrible. Furthermore, it seemed to me that when a particular body part is "affected," the effects should propegate to the others. For example, if a character lands hard on the floor, instead of bouncing off like a rock (or a log of wood), it should exhibit dynamic motion such as movement in the muscles due to the force.

## What I Did

Essentially, I created a continuous mesh character using Lee Markosian's 99 Siggraph paper titled Skin based on a basic skeletal model. Then I borrowed some motion-captured data files from a friend. The idea is that if I move the skeletons based on the motion-captured data, I should see dynamic motion in the character's skin mesh...

To accomplish that, first I need to give the character a sense of "volume." The volume of the character is represented by a bunch of sample points. When I connected these sample points to the skeleton and the surface mesh, I created a mass spring model... Now, by moving the skeleton around, the springs will get pulled or shrunk, creating forces that I can calculate to play with... In the end, these forces will affect the positions of the skin mesh points, effectively deforming the character.

Playing with the forces is the bulk of the thesis. I tried three different types of volume deformation techniques, basic mass-spring model, a 2nd order constraint model, and an approximate finite element method...

## Mass Spring Model

The cube is just a test bed to try out my basic algorithmic concepts... A character is difficult to debug, while a cube's "behaviors" should be much simpler...

In the picture above, the left is a picture of a 3D cube, and the right is the internal structure of the cube itself. The blue stick is the actual "skeleton," the spheres are sample points/mass points, and the dark purple lines are the springs.

## Human Model

As unbelievable as it is, I can no longer find the animation sequences that I have rendered... I think the files were destroyed after I graduated from Brown University's CS Department. So, pictures will have to do... sigh.