Python in VFX   July 1st, 2009

I’m giving a short talk tomorrow night at the Michigan Python Users Group.  Known as Michipug, the group meets the first Thursday of every month at SRT Solutions in downtown Ann Arbor, Michigan.  Although I haven’t attended any previous meetings, when the call came out for discussion topics I thought this might be a good way to introduce myself and meet group members.

The title of my talk is ‘Python in VFX.’  Python is a high level programming language used in many application domains including web development, database access, desktop GUIs, scientific computing, network programming, and software development.  Python is open source, and can be freely downloaded and distributed from the official website http://python.org.

python_in_vfx_01

http://python.org

VFX is the acronym for visual effects, also sometimes written as visual f/x or visual fx.  Wikipedia describes visual effects as the various processes by which imagery is created and/or manipulated outside the context of a live action shoot.  Often visual effects involve integrating live action with computer graphics.  Many Hollywood feature films now make heavy use of visual effects to create their movie magic, and with good reason.  If you look at the list of the highest grossing films from 2008, VFX films (films that make heavy use of VFX) dominate that landscape.  Also present in the list are films made by 3D animation studios.  Although these films have little or no live action, they still fall into the category of VFX films since they utilize the same types of tools to integrate computer graphics (CG) imagery.

python_in_vfx_03

Highest Grossing Films of 2008

Companies that create visual effects make use of Python in a number of ways.  One example listed on the Python Success Stories site is a description of how industry heavy weight Industrial Light & Magic makes use of Python in its computer graphics production pipeline.  Initially intended as a replacement for shell scripting, Python moved beyond process control to be used in software development, tracking and auditing within the production pipeline, and asset management.

Another example of an industry powerhouse using Python is discussed in the techradar.com article on the making of Pixar’s movie UpPixar is the undisputed leader of computer animated film creation, and has the resources to use any tool they choose for production.  While working on the complexity of managing the balloon canopy, developers setup a Python procedural layer to solve the issues of simulating and animating the balloons.

With the leading visual effects companies making heavy use of Python, and considering how VFX films now dominate box office receipts, Python has indeed become an important tool in film production.

The importance of Python has not gone unnoticed by software companies that sell tools for visual effects work.  Examples of such tools include 3D modeling and animation, compositing, and tracking software.  Commercial 3D modeling and animation software that have support for Python include Maya, Houdini, and SoftImage.  Other commercial 3D applications, such as 3ds Max, Cinema4D, and Lightwave, have Python support via 3rd party plugins or add-ons.

Compositing applications with native Python support include Nuke, Shake, Fusion, and the Flame/Inferno/Flare/Toxik product line.  Tracking software, such as PFTrack, Boujou, and Syntheyes, use Python for exporting camera tracks.

It makes sense for the commercial visual effects tools to have Python support.  After all, with Python in heavy use in production pipelines around the world, studios are looking for tools that easily integrate into their current work flow.  With Python already in use in house, choosing applications with native Python support just seems like the right way to go.

python_in_vfx_05

Python Support in Blender

One non-commercial 3D modeling and animation application I have yet to mention is Blender.  This open source application natively supports Python and includes a number of useful scripts with the installation.  Blender also supports the Blender Python API which allows one to create graphical user interfaces for scripts.

The above image shows an example of where I used a Python script to add additional functionality to a scene.  As described in a previous post, I wanted to add some jitter to a camera movement.  Fortunately I was able to find a Python script to add to and control the amount of jitter contributed to the camera move.

Python is here to stay in the visual effects world.  For those of us interested in working in visual effects as a career, it’s definitely worth getting to know this powerful development tool.

This entry was posted on Wednesday, July 1st, 2009 at 9:25 pm and is filed under Programming. You can follow any responses to this entry through the RSS 2.0 feed.You can leave a response, or trackback from your own site.

No Responses

Leave a Reply