What’s missing in computer science curriculums?
I teach in a computer science department, and one thing is painfully true: universities and colleges have been very slow to introduce basic animation skills into their curriculums. This is a big problem.
2D and 3D graphics and animation are popping up everywhere, and more and more, programmers discover they have to be part time artists. This is particularly true for developers of Web 2.0/3.0 apps. Web app developers find themselves using graphics tools to build both user interface controls and to create animated models. And, as applications that can convert 3D models and animations into lightweight renderings become more efficient and more powerful, Web app developers are having to add 3D tools to their quiver of arrows.
2D animation engines include Adobe Flash, Microsoft Silverlight, and HTML 5. The drag-and-drop application that generates Flash animation, Adobe Flash Developer (recently renamed from Flex Developer), along with Microsoft Blend, which generates Silverlight code, give the programmer a way to develop animation without having to work with an artist’s interface. But in truth, drag-and-drop tools only get the programmer so far. In order to refine, extend, and debug interfaces, the programmer has to master the two XML languages used by Flash Developer and Blend (MXML and XAML, respectively) to define interface components and 3D models. The programmer also needs to be comfortable with the two languages that these XML specifications compile down to (ActionScript and C#). and that means learning their extensive animation capabilities.
And it’s not just small scale modeling and animation.
Sophisticated 2D and 3D animation is also confronting the young programmer. Game, feature film, animation short, training video, and TV show development are rapid growth areas. Interestingly, while powerful GUI-based applications like Autodesk Maya, Autodesk 3DS Max, Toon Boom Animate, Vue, and Poser are used largely by non-programmers, there is a critical niche for the programmer-animator. Scripting languages are used to perform many basic modeling and refinement tasks. Not to mention the fact that someone has to build these huge animation apps, and these folks, well, they’re programmers. The point is that it’s hard to build an application that creates things you do not understand.
The emergence of canned content and cheap animation apps.
There is also an explosion of applications that provide canned animation capabilities, and there are a growing number of websites that sell animation content. This makes it feasible for programmers to create basic animations for websites and desktop applications, without the need for full-blown animation artists. DAZ3d.com and contentparadise.com are two highly popular content sites. And sophisticated animation projects can be developed with applications that are cheap (or free). These include DAZ, Blender, and Carrara.
The bigger picture: the boundaries between disciplines are breaking down.
Perhaps the most compelling reason for universities and colleges to start treating animation as a first class academic citizen is that the nature of computing itself is rapidly undergoing an expansion. Computer science graduates are finding jobs in the financial, communication, genetic engineering, mechanical and electrical engineering, alternative fuels, architecture, advertising, business, and medical industries – and all of these professional disciplines have substantive animation components. It’s the age of merging fields, with borders collapsing, and computing skills becoming necessary in almost all walks of life. As non-technical types must be able to do basic programming and software configuration tasks, programmers are learning that they need a non-programming area of expertise in order to stay competitive – and tossing animation skills into the pot is a sure plus.