Agility Animation Engine

A character animation engine enhanced with artificial intelligence learning capabilities

A few colleagues of mine and I developed a character animation engine, called Agility, a few years back designed to improve the quality and productivity of the CG animation pipeline. The key technology behind Agility was an artificial intelligence (AI) layer system built into the animation rigs. This AI layer served two purposes.

The first is that it would learn how a character moves from its animators. Once a character rig was built the animator would hit the record button and begin animating. When the record button was active the AI would monitor the keyframes and tweens for each joint in the character rig and learn the movement preferences of the character, including preferential rotations and speeds. Over a short time the knowledge obtained by the AI would start to feed back into the animation, preferencing similar movements in the future. The result was that after the initial training period the number of keyframes that the animator had to assign to the rig was significantly reduced because Agility would use the knowledge obtained from previous animations to calculate the complex trajectories, speeds and accelerations for the future tweens.

The second purpose of the AI was that it could be driven by genetic algorithm to produce viable full-body locomotion for the character. Basically, it could learn how to walk by itself based on the knowledge it gained while recording earlier animations.

While useful for characters of any type, the technology was very well suited to non-human creature animation that doesn’t have nearly as much reference material to draw from and can be harder to animate. Especially when sharing animation duties for a creature between multiple animators, the Agility technology made it easier to maintain coherent non-humanoid movement throughout a project.

Example: Robot Locomotion

The following is an example of our early tests of Agility on a bipedal robot that has very non-humanoid characteristics. This example has no cleanup or post-processing applied to it, showing exactly what the raw output of the Agility AI locomotion solver calculated. We showed this without any post-processing to demonstrate the capability of the solver to find viable locomotion and prove that we weren’t using post-processing tricks to "can animate"the results.

You can see that the animation tangents don’t line up perfectly throughout the walk but otherwise the locomotion is completely viable from just the genetic algorithm. After the algorithm found such a walk, Agility would then apply the post-processing cleanup to bring the animation up to production quality.

The character was rigged in Autodesk’s Maya using an Agility animation engine plugin we developed and then the character was "taught"how it should move with a series of very simple animations. Each "learning"animation was just two or three keyframes demonstrating the boundaries of motion for each joint in the body. The process is much more like physical therapy where you exercise a joint than actual animation. Once each joint had been exercised with Agility recording and learning from the actions the walk cycle was calculated in under a minute on consumer-grade laptop.

The snapshot sequence of the walk cycle shown above help reveal one of the great things about the Agility solver, its flexibility. If you look at the hip joint of the left leg in the three shots you can see that the entire leg slides forward and backward on along the bar during the cycle to increase the robot’s stride. You can also see the thigh extender (above the knee) acts like a piston and extends and contracts during the cycle as well. Agility wasn’t programmed to solve this body plan, it was built to be as general as possible. Let animators be creative in the design and movement of characters and take that information and do as much as possible with it.

Most solvers developed before and after Agility use highly restricted motion spaces to make solutions possible. While these solvers are much easier to create, the downside is that everything moves like a person. This example demonstrates that Agility doesn’t suffer this and will work with whatever it’s given.

Where is Agility Now?

Agility was a casualty of the great recession. The world of CG animation was hit hard by the recession and has arguably never recovered. Agility was just starting to mature as a technology when the market crashed and the opportunity to turn it into a product was never realized.