If you see a high-tech flick, you might critique the CGI but you're unlikely to think about the programming language used to write the software. But it turns out that being able to write code is an increasingly common requirement when working in the movies.
Picture by ptshello
At the recent PyCon 2010 conference in Sydney, software developer Mark J Streatfield gave a fascinating talk on how Python is used in the movie industry to help with post-production tasks. Streatfield currently works for Sydney-based Dr D Studios, and has worked across a varied slate of movies including Slumdog Millionaire, Happy Feet 2 and the Harry Potter series.
Streatfield noted that we're all pretty happy to talk matters of CGI these days, but often don't think about the actual technology used to make that happen. "The technology used to produce these images is becoming the nomenclature of the everyday viewer. But the volume of Python code underpinning much of the production process is much less visible."
Typically, Python is used to write batch scripts for complicated pieces of work that can't be handled directly by standard tools like Maya and Blender. "Studios are able to use Python to sculpt and mould," Streatfield said. Having first been used for simple batch processing and file manipulation, it's now increasingly being used to automate overall artist workflows.
That's become more viable as movie production (like much else in tech) as shifted away from proprietary hardware to using standard off-the-shelf PCs. "It's gone from a tool used by the geeks and the boffins to actually being an artists' tool," Streatfield said. "The complete production process has become an organic digital environment."
While artists might be comfortable writing basic Python scripts, the ad hoc processes they use would make dedicated programmers (or general organisational cultists like this Lifehacker editor) weep. "A film studio is not a software development house," Streatfield said, noting that "throwaway scripts" are the norm. "There's less of a desire to follow normal software development processes."
That's arguably a reasonable compromise, given that the main task is producing a film, not writing a software library. "The process of making a film is inherently creative and should remain this way," Streatfield said. A digital artist does not want to be constrained by the technical requirements of their software."
Lifehacker's weekly Streaming column looks at how technology is keeping us entertained.