If there was ever a doubt that computer science and engineering are exciting career choices, let the recently released hit animated picture Wall-E change your mind. What most people see when they watch this movie is a touching love story from an unexpected source. Sure, I saw this too, but I also saw some of the many reasons it would be really cool to work in the computer animation industry!
Back in the old days, many of the people who worked on computer animations were in fact computer scientists (as explained here). While we may consider ourselves to be creative, we certainly aren’t all artists! It shouldn’t come as much of a surprise, then, that early animations were controlled by scripting, and that this wasn’t so easy for artists to use. Now there are many software packages that artists can use instead, like 3D Studio Max, Maya, and Blender. But none of these are complete, as you can see on this comparison chart. Wouldn’t it be cool to work on the tools that help make the next Wall-E? (Check out the animators and their software at the beginning of the second video here.)
But of course there is a lot going on behind the scenes of animation software. While the most basic form of computer animation would involve moving a model object bit by bit, and rendering each new position as a separate frame, there’s no chance anybody could stand doing this for an entire feature film! The next step is to use key-framing, where only the major distinct positions are defined, and the stuff in between in calculated automatically. Still, animating, say, the scenes in Wall-E where hundreds or thousands of humans are floating around on their chairs, chatting away to their hover screens, would be pretty tedious. Enter the research that helps make this happen as automatically as possible.
Let’s look at this crowd example in more detail. To avoid manually telling each person what to do, artificial intelligence is employed. Wikipedia explains it best:
The entities – also called agents – are given artificial intelligence, which guides the entities based on one or more functions, such as sight, hearing, basic emotion, energy level, aggressiveness level, etc.. The entities are given goals and then interact with each other as members of a real crowd would. They are often programmed to respond to changes in environment, enabling them to climb hills, jump over holes, scale ladders, etc.
As you can imagine, there is a tradeoff between how complicated individual behaviour can get and how much computing power will be needed to run the simulation and ultimately create the animation. Luckily, the people who made Wall-E have a lot more time on their hands than, say, a video game running in real time, so they are able to not only get more complicated and interesting behaviours, but they have the ability to tweak anything they don’t like the look of. Still, time is money, so if we can come up with ways to get things right the first time, animation studios would be very happy.
If you want to see how crowd simulation works for yourself, you’re in luck! You can download the free, open source animation package called Blender and then try BlenderPeople, a set of crown simulation scripts that work with Blender.
Of course, animation software and artificial intelligence techniques are only a couple of ways that a computer scientist could get involved with computer animation. Whether you enjoy topics in human-computer interaction, design of efficient algorithms, techniques for music and images, or even the massive, parallel systems that render as fast as they can, there’s something for you in this exciting industry.