I happened across the above video a year or so ago. Even if you don’t read further, watch it – it’s fun and really interesting.
It was done by computer animation researchers1 attempting to advance the ability to accurately animate creatures for games and movies. Simulating moving creatures, especially humans in a convincing fashion is extremely difficult to do (see uncanny valley).
Previous approaches were based on modeling the joints (like elbow, knee, etc.) of a creature and moving them in concert. The focus was on joint behavior (range of motion) and for balance, foot placement. The results, I think we can agree, have gotten pretty good. Still, the best results are when full motion capture is done with a real actor, and overlaid on a model.
However, joints don’t move on their own. Muscles drive them. What if, instead, they modeled muscles and how they attach to the bones? Then, model the system that activates them, and use that to drive the simulated joints? This is what the researchers did2.
The real cool part of this is that they let the simulated creature get better by evolving. The creature would be given a simulated push, and it would stumble along until it fell or went off course. Then, the program changed the muscle control parameters and sent the creature on its way again. If it did better, then it would move the parameters more in that direction, and try again. If it did worse, it would go back to what it had before, and try something else. After somewhere between 100 to 1000 generations, everything stabilized, and the creature moved well.
Actually, that’s an understatement. I found the results stunning. Even though the muscle model is EXTREMELY simplified, and the creature is represented by blocks, it moves in the way the real creature would move. It moved in a natural way that other simulations don’t. And, IT FIGURED IT OUT ON ITS OWN.
Make him heavy, he lumbers. Make him tall, the gait becomes that of a tall man. Reduce the simulated gravity to that of the moon, and the guy does the Neil Armstrong moonwalk. Mess with the control system, he moves like a drunk.
Make a bird creature, and have it move slowly, it hops. This floored me. The accepted belief is that birds hop because they have to hop between branches, and they don’t know any better when they are on the ground. This says otherwise.
Though the researchers were looking to improving reality within games and movies, I saw other possibilities that were more exciting.
First, it says to me that creatures in the real world (including you and me) move in the most efficient manner for their musculature, their skeleton, their weight, and their environment. When we see a bird hop or a seal do its awkward land bounce/wiggle, it does that because it’s the best way for it to move under those conditions. Regardless of how it looks.
Second, it would also seem to be a useful platform to analyze the effect of muscle loss, and skeletal issues due to aging or injury, and develop ways of mitigating them. By looking at how someone moves, you could, in theory, determine what is weak. For sports, (again, in theory), you could look at the desired mechanics, and target muscle training to help naturally achieve those mechanics.
Third, if you’re building an autonomous machine (like those folks from Boston Dynamics), this seems like an interesting avenue for research and prototyping. Though, when I see what those guys can do already, I find it fascinating and scary in equal amounts.
Now, off to the gym.
1Thomas Geijtenbeek and A. Frank van der Stappen of Utrecht University, and Michiel van de Panne of the University of British Columbia
2If you have a science/math background, I’d suggest scanning the paper. They really have done some clever stuff.