May 26, 2011 - Python at Walt Disney Animation Studios

WDA = Walt Disney Animation Studios

How many ways does WDA use Python?

  • Scripting in Maya.
  • DLight (lighting controls)
  • Scene Navigation (navigation through scenes in a script once audio/video added)
  • Art version control systems.
  • Scripts to facilitate moving images and data in and out of sequences
  • syrup - SAP scraper. Python Interface to our SAP based timecard system.
  • Python CGI that interfaces with Production management tools and generates Excel.
  • munki - A client/server to distribute 3rd party packages to max
  • Coda - queuing system. C++ application with Python expressions and API
  • Squish - 3rd party QT GUI test automation. Lots of Python scripts there.
  • Mentor - Unittest library that interfaces well with Maya.
  • GEMS - Python CGI system for searching Disney Archives
  • Most 3rd party tools for the visual effect community comes with a Python API. How cool is that?
  • Another 20 things I couldn’t keep up with!

Specifics on how WDA use Python?

Sample apps out of many:

  • Dlight

    • C++ 52%, Python 48%
    • Surfacing
    • Lighting
    • Render Picture
  • DLight GUI

    • C++ 48%, Python 52%
  • Scene Navigator

    • Python 100%
    • Shot management
    • Element properties

all tools are fully scriptable in Python

Disney Messaging

  • Defines messages independent of Language
  • Generates C++ header files with Python bindings

Regression Testing

  • Approx 2,000 regression tests between products
  • Tests cover both C++ and Python functions
  • 99% written using unittest

Performance

  • A hot topic!
  • PyQt vs Qt
  • Smart use of classes far mor important than Language interface
  • Time-critical functions written (or rewritten) in C++

Package interoperability

All provide a Python API!!!

  • Maya (autodesk)
  • Houdini (Side effects)
  • Renderman (Pixar)

Choosing Python

  • Performance trade-off
  • Development cost
  • Support cost
  • Pipeline integration