
Python for Feature Film: Programming Images to Life - dagmx
http://dgovil.com/blog/2016/11/30/python-for-feature-film/
======
dagmx
Just sharing a series of posts I wrote recently about how Python is used in
the film industry. The post linked outlines the pipeline in general, and there
are individual case study posts for films I've worked on. They're less
technical and more of an overview but I thought it would be of interest
nonetheless.

~~~
pryelluw
This is greag content. Thanks for sharing. Where else in the fil industry do
you see python being used in the next 3 years?

~~~
dagmx
I could see it maybe being used to develop on set controllers. Things like
programming of lights etc could potentially use it.

I also see it being commonly used for web servers that are also used by the
film industry. Django is quite common so I suspect that's another area.

Unfortunately I think that's about it. The de facto tools that are used
outside of VFX and animation each have their own APIs on other languages and I
don't see them converging on any particular language.

~~~
pryelluw
As a Django consultant its nice to know about this info. Do you happen to know
the name of companies using Django? Id like to approach them for work :)

~~~
dagmx
Well my company does for certain projects:
[http://www.imageworks.com/jobs.php?p=job-
postings&s=vancouve...](http://www.imageworks.com/jobs.php?p=job-
postings&s=vancouver&a=8)

I believe Disney Animation do as well for certain projects too, and probably
Pixar too. ILM also have a web department though I don't know if they use
django but I suspect they would.

It's not really front and center on any of the job listings I see, even on
ours but we do definitely use it for some of our backend.

~~~
pryelluw
Thanks thats really useful info.:)

------
dagmx
Should be back up now. Reddit hugged my RAM to death. Set up a cacher and
upgraded my VPS for the time being

Sorry about the site going down. How embarrassing. Mirror here:
[http://webcache.googleusercontent.com/search?q=cache:QEt3EVS...](http://webcache.googleusercontent.com/search?q=cache:QEt3EVSuYnYJ:dgovil.com/blog/2016/11/30/python-
for-feature-film/+&cd=1&hl=en&ct=clnk&gl=us)

I was totally not expecting that much traffic in such a short period of time
and failed to set up a cacher properly.

------
brachi
> Additionally, it’s important to note that the film industry uses Python 2.7
> and not Python 3. There has been significant code developed with Python 2
> and it’s not easy to switch forward yet,

It's worth mentioning that Blender has adopted Python 3 as its scripting
language since 2.5 (2011), but maybe represents a small set of 'the industry',
with smaller studios.

~~~
dr_zoidberg
While I'm guilty of staying with an "aging" 2.7 codebase (due to lack of time,
and my employer not being really sure about Py3), with 3.6 I've been looking
more and more into porting and it doesn't look _that_ complicated. Am I
missing something when people say that "it's not easy to switch"?

~~~
dekhn
How much unicode do you work with? If your answer is "none", then the answer
to "is it easy to switch" is "not that hard".

I would start by taking your 2.7 code, adding "from __future__ import
print_function" and fixing any SyntaxErrors. This is trivial by byte compiling
all the files.

Then, add "from __future__ import division". Now, run all your tests (you have
tests right?). If none fail, and you're sure your tests actually test your
division code locations, then proceed.

Next step: you're done.

~~~
dr_zoidberg
I can think of a few spots where we've used filter or map which should require
a bit of work too. Other than that, your Hitchikers Guide to Python 3 seems
about as easy as it can be.

~~~
dekhn
map and filter return iterators. This is easy to fix (list(map(...)). reduce
is at functools.reduce.

~~~
dr_zoidberg
Hmmm I knew there were some changes in both map and filter but didn't dig into
them. If the only change is that they return iterators instead of lists, it
would even help on some parts of a few projects I maintain. I still have to
check it up though, can't be certain until I see what happens and if it breaks
anything.

------
glaberficken
Thanks for sharing, my favorite part wasn't even the one about Python. It's
that you included a step by step list of the Animated feature film pipeline, I
had no idea how it worked =)

~~~
dagmx
Glad you found the breakdown of the stages interesting. It's a lot of moving
pieces at one time.

------
di
Cached:
[http://webcache.googleusercontent.com/search?q=cache:QEt3EVS...](http://webcache.googleusercontent.com/search?q=cache:QEt3EVSuYnYJ:dgovil.com/blog/2016/11/30/python-
for-feature-film/+&cd=1&hl=en&ct=clnk&gl=us)

~~~
dagmx
Thank you for sharing that. It seems I got reddit hugged to death. I was
totally not expecting that many concurrent hits and failed to setup proper
caching.

------
awongh
this is very cool.

what are some of the names of the jobs that are programming based (as opposed
to 3d artist based)?

I am also very curious about what the breakdown is between people who write
the pipeline code and those who write the stuff being put into and out of
these pipelines- is the difference very big? (i.e. how deep in the stack does
each role go?)

And what kinds of experience do they look for, and how would you say a regular
old web dev programmer would go about getting that experience?

~~~
wdfx
Vfx companies need web devs too! I'm a lead for a team which delivers web
based tools for vfx production management. Quite a few bits of our apps and
back ends have to integrate with pipeline tools and asset management systems,
so there is an interesting cross over. Also for that reason we have python
services and web stacks.

~~~
wdfx
That is to say, you could join a vfx company using your existing web dev
skills and once you are familiarized with the vfx environment and pipeline,
transfer onto a pipeline team.

