Opportunities in Computer Graphics for Engineers

Introduction The Computer Graphics (CG) industry in India is very young, but it is growing rapidly. Until recently, the emphasis has been on small teams using off-the-shelf tools for short projects. At this point, India is yet to enjoy its first home-grown Toy Story or Jurassic Park, or to make a hit 3D game. CG in India is dominated by Visual Effects, Animation and Gaming. The typical mode of entry to animation and FX studios in India is via private academy courses, where tools like Maya or Max are taught. Generally, a fine arts background is considered very helpful, but not essential. Interestingly, while CG is rightly considered a highly artistic profession, its growth in the West has also been greatly fueled by the participation of a large community of engineers and scientists. In fact, CG offers a unique opportunity for people from software and engineering backgrounds to enjoy a creatively rewarding and exciting career compared to, say, a career programming applications for banking databases. Meanwhile, a shortage of such people entering the Indian industry has thus far severely hampered its ability to execute technically challenging long-form projects. Areas of Activity There are several areas of activity which offer ripe pickings for technical personnel, at different levels of technical involvement. Some of these are described in detail below. 1. Core Tools Anyone who has used a package like 3D Studio Max or Shake can imagine the programming expertise and domain knowledge which goes into creating such software. Most of the major studios in the world have software teams which build proprietary software for their use, often with features a step ahead of what is in the market. This allows them to keep up the pace of innovation. As the amount of proprietary software grows within a company, it also gets standardized into core libraries which are the framework upon which new applications are built. There is a significant software engineering task to design, implement and integrate new and complex techniques and algorithms into production-friendly tools. Studios in India have not yet evolved to this advanced stage. Meanwhile, several successful product companies have also been created, for example, Alias, Discreet, Avid, Adobe etc. Their purpose is not to produce content themselves, but to create tools to sell to the CG community. For those who think that successful product development is the exclusive preserve of the US, it might come as a surprise to find how many award winning products use every day in the industry originate from Canada and Europe. Several marquee companies are now opening offices in India or are outsourcing development activities for their products to India. The most notable one is Adobe, which has moved several of its multimedia product teams to India. These companies constantly face a shortage of trained personnel. Software engineers writing core tools need to understand the principles and core algorithms of computer graphics, as well as user interface design and performance tuning. The usability and performance of CG programs are the most critical aspects for success. 2. Plug-ins and Scripts Most of the major tools come with plug-in interfaces and embedded scripting languages. These are used to expose a lot of the core functionality of the tools for easier customization and extension. Smaller studios can leverage these for very specific tasks unique to their own pipelines or workflows. Developers can also sell well-designed plug-ins as a product to the user community. 3D Studio Max is a successful example of this philosophy. In fact Max was designed as a bare-bones platform for developers to add their own functionality. This made Max a great entry- level tool and pioneered a wave of technical innovation by third parties. Today we are seeing the full cycle where Discreet is buying back some of the successful plug-ins and integrating them into the main product. The cost saving to a studio to replace a site license of a cloth plug-in by an in-house solution can significant. Most of the tools are now so open that studios can program their own custom particle simulation systems, renders, cloth systems, animation controls, 2D filters, shaders etc. The software engineers who identify and design these tools need significant insights into the production and artist process in order to precisely identify the requirements, and need to implement or design solutions for those requirements. 3. Pipeline Tools FX, animation and game studios carry out very complex tasks where data is passed from artist to artist or shared among multiple artists. Shots pass from scanning to dirt and wire removal to matchmoving to animation, FX, rendering and compositing. Characters are designed, modeled, textured, rigged, and animated. Crowd shots use several creatures, motion libraries and FX as well. All these activities cause data to pass in and out of various tools, and new versions of the shots are created daily, even hourly. This entire matrix of activity constitutes the pipeline of the studio. The pipeline is almost a live entity which has productions passing through it but is also being patched and updated constantly. Pipeline engineers develop tools and scripts to enable and track the data flow in a standard and predictable manner. They also automate many of the menial tasks of data management, and convert data among multiple formats. Pipeline engineers have to work very closely with the artists to understand and support workflows, identify and rectify inefficiencies, and write production specific utilities. They have to be innovative and improvisational. It is useful for them to know light scripting languages like Perl and Python, and to work with scripted UI libraries like Tcl/Tk. 4. Technical Direction The term Technical Director is confusing. It refers neither to the director of a film nor the director of a company. A technical director is one who performs a variety of tasks, but is ultimately the person who is responsible for completing a shot. For example, technical directors set up and assemble scenes, and optimize them – often a very complex task given that they need to integrate and troubleshoot characters, sets, plates, simulations of cloth/fur/particles etc.. They are typically responsible for lighting, FX and rendering as well, though some studios have specialties like Lighting TD or Crowd TD. A recent job description is that of Character TD, who deals with all technical tasks related to setting up a complex animated character like Shrek or Gollum, from its script-driven custom animation rig controls to its cloth and fur characteristics. Programmable shaders are also created by TDs for renderers like Renderman or Mental Ray. Training in Mathematics or Physics is also handy in particle and cloth simulations, particularly in extending available “library” simulations using scripts. TDs with a technical background can also go in early in a show and develop generic techniques or simplify complex techniques to be used on multiple shots by others. Studios in the US are populated by TDs who either have specializations in computer graphics from major engineering schools like MIT and Stanford, or are programming/scripting savvy artists. Anyone attempting a film with hundreds of shots with no TD department would face a very daunting task. This job function has been underemphasized in India, leading to a two-fold problem – animators or modelers often double up for FX, lighting, rendering and shot completion, while at the same time companies cannot effectively execute technically complex content or long form work. Naturally, not all engineers can be TDs. They need some ability and interest in art, filmmaking and production, as well as a knack of achieving visually pleasing results with technically complex solutions. However, it is a richly rewarding and creative outlet for someone who is not a trained artist. 5. Game Programming Gaming is a hot industry, growing faster than movies in the West. The revolution in 3D gaming has been followed up by another revolution in mobile gaming. More than any other media field, this is the one heavily dependent on technology and technical innovation. PS2 and Xbox are innovative hardware architectures, while gamers also drive new acceleration cards from NVidia and ATI. On the software side, 3D games are built upon game engines which are licensed from engine developers. Further tools and AI behaviors are then built upon these engines. Assets created by artists in modeling and animation tools are then exported through custom tools to these engines and ultimately ported to consoles if needed. In all these steps gaming companies are heavily dependent upon programmers. Game programmers are a unique breed. They understand CG well, can develop or use the software APIs of engines, and can tune the performance and make innovative performance optimizations in the game code for the target hardware – all under extreme deadline pressure! It is not uncommon for key functions to be hand-optimized in Assembly Language! Clearly, 3D game programmers really push the envelope in terms of both software and hardware skills. Mobile game programmers are also in short supply. They typically work in small teams very closely with artists and have to be innovative in improvising within the limited resources available. The older classic hit games of the eighties are now being ported to phones. Along with new movie tie-ins, this gives programmers a chance to be an integral part of huge brand name titles in the entertainment world. This field is also unique as there is a booming domestic market and job opportunities abound. 6. Non-entertainment-related CG While entertainment drives all the glamorous facets of the CG industry, CG is also a very serious business in other spheres. For example, Scientific Visualization is a field where very complex real-life phenomena are visualized in 3D to help the scientists and engineers who are studying those phenomena. This is seen in medical and genetic research, weather systems, complex physics and chemistry simulations, etc. Geographic Information Systems use sophisticated techniques to represent, store, deliver and draw terrain meshes and geographic information – more and more important with the growth of GPS. Augmented and Virtual Reality use cutting edge techniques in real-time 3D to put maintenance and trainee personnel in environments where they cannot physically be present, such as Reactor Cores and Space Shuttles. All of these application areas are not commoditized with off-the-shelf-tools, but are driven by very sophisticated high-performance custom programs. Skill Sets A variety of technical skill sets find expression in CG. This article will not dwell upon the opportunities for hardware engineers in chip and hardware design. However, on the software side, a fundamental understanding of the core CG algorithms is essential, including some of the math such as vector algebra. Introductory course in college or books can provide this. Generally CG is programmed in C or C++, on top of standard graphics libraries such as DirectX and OpenGL, which need to be understood. Other specializations can emerge, such as real-time techniques, mobile environments like BREW and j2me, simulations etc. Non CG persons need not despair. They can learn the scripting languages like Mel or MaxScript, and can learn useful pipeline scripting languages like Perl and Python which are also useful for systems engineers. More and more demand also exists for good database designers and admins who will organize and manage the vast asset libraries of productions. Studios rely heavily on their systems administrators, systems programmers and hardware engineers to run their vast infrastructure. Given how expensive CG is, anyone with an innovative approach who can constantly find ways to improve the efficiency of the workflow or the infrastructure and eliminate menial tasks for the artists will always be welcome in a CG environment. A knack for troubleshooting and ability to work in heterogeneous teams alongside non-technical artists are invaluable skills. Jai Natarajan has a background in Computer Graphics and Visual Effects. He was previously a Technical Director at Industrial Light and Magic, working on pipelines, lighting, rendering and visual effects for films like Star Wars : Episode 1, The Perfect Storm, Flubber and Mighty Joe Young. He has also worked at Sony Electronics in the US. He returned to Mumbai in 2003 and has since then worked with an animation startup and a game services startup as an consultant on technology, creative and business development matters. Jai holds degrees in Mathematics and Computer Science from BITS, Pilani, and a Masters in Computer Graphics from the University of California, Los Angeles. Back to top Summary Engineers, particularly software engineers, have many career choices before them. They should also consider a career in Computer Graphics, because their technical skills and approach to problem solving can be very handy in an environment currently characterized by complex processes and inefficient workflows. Having a niche specialty is also very helpful as a career differentiator, or as preparation for higher studies. Finding a creatively and visually satisfying profession is also a huge bonus. At the same time, the Indian industry should evangelize and engage the engineering schools to provide a focus in CG through courses and projects. An influx of technically savvy CG professionals will enhance the creative process, extend the production capabilities and raise the efficiency levels of a studio. Technology Investors can also be on the lookout for good product opportunities in a booming space. connect@animationxpress.com