Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Python For Feature Film (gfx.dev)
260 points by dagmx on Oct 19, 2020 | hide | past | favorite | 65 comments


This was a series of posts I'd created in 2016 to try and illustrate to people how important Python is to the film industry by focusing on animation and VFX pipelines, and showing the kinds of projects a developer can contribute to a film. These have been updated so I figured it was worth sharing again.

Updates: * Added some more projects that I'd written up a while ago but not posted about * Updated the content in the old posts to be a little more detailed * Added more behind the scenes videos * Moved to a new site (using Gatsby instead of WordPress)


If people are interested in it from a more backend/systems level there's also:

* A PyCon Canada presentation: https://www.youtube.com/watch?v=HuV0_AbDgYk

* EuroPython: https://www.youtube.com/watch?v=bPNGn1XHCKw


Just a heads up, for me the "posts in this series" links (towards the top of the page) all return 404 errors. It seems they have an extra "python-for-feature-film/" in the URL. This happens when I have javascript blocked. If I enable javascript the links appaear to be re-written to be valid.


Oh that's good to know. Apologies for that bug. I'll have to see how noscript compliant I can make the site since it's based on gatsby, which does some amount of client side rehydration.


Cool! Maybe you should have titled it as a Show HN?

Fwiw, a lot of the images / references aren’t showing up for me (Mobile Safari). Hug of death?


I thought Show HN was more for projects? Or is it for just sharing any personal content? I was unclear on that.

Edit: looked it up https://news.ycombinator.com/showhn.html) and it says "blog posts, sign-up pages, newsletters, lists, and other reading material. Those can't be tried out, so can't be Show HNs. Make a regular submission instead."

And I am not sure why the images aren't loading. The server isn't under any undue load it looks like, but Someone did mention that if javascript was blocked some content would 404. It could be that perhaps?

I'll have to test the site more, but thank you for letting me know!


For people who don’t enjoy doing CRUD and want to play with massive infrastructures, systems level programming and everything in between VFX can be pretty fun! If people are looking for FAANG level compensation then look the other way.

Thanks for writing this !


That would be an awesome field to move into. I'm so hungry for a field where I can use programming to solve problems so far away from the code itself that perhaps I could escape the cargo-cult mentalities and just focus on getting the job done. Such was life at a manufacturing firm that couldn't care in the slightest what language/pattern/framework (those questions scared management because it meant there was part of their business they didn't understand) was used as long as it gave them what they wanted.


There isn't much that competes with FAANG in terms of compensation, but what is the compensation like for that industry? I have a personal interest in film making and photography in addition to being a (quantum) systems programmer, so this could be a potential career move for me in the future.


FWIW, I worked for a FAANG company writing VFX software for a while. There are frequently openings if you're interested. We made FAANG wages (and other compensation), as you can imagine. We hired a lot from the nearby studios in LA – Dreamworks (who perpetually seemed to be a month away from or a month past a layoff), Sony, and some of the smaller effects houses. We even had a few former game programmers who did lots of graphics work. People from the film studios indicated that the conditions at the studios were suboptimal compared to working at a FAANG company, though compensation didn't seem too much worse.


The pay I would say is competitive for programming jobs in the respective areas as long as you're not comparing to the top tier companies. Even then, base pay isn't so far off, but you don't get equity.

In Vancouver for example, a programming job in the film industry and outside it will net you 90-150k on the high end, and film pays equally well in that area.

In LA, you have a lot of FAANG companies entering the film industry too with FAANG wages. Netflix in particular is bonkers high.


FWIW I don't think Netflix pays as well for people doing more VFX-y python work in their pipelines. Have been contacted and wasn't impressed. It was also the case with others I know.

Maybe it wasn't the right roles but it was, IMO, much lower than a senior software dev in a big studio Vancouver as far as cost of life goes.


Oh that's odd because my friends there in pipeline are making 3x what they were in Vancouver, especially after currency conversion.

Maybe they've petered down since but it was a significant amount when I spoke to them


If it is the people I am thinking about (small industry :P ) then for sure! But I wouldn't say they're doing python pipeline kind of work (like your post).


Personally I don't know anyone that moved over in pipeline, and not sure they are really doing much in that. But for more R&D style roles I've seen it reflect what the parent was saying.

I guess I'm just saying that I agree with this thread.


> base pay isn't so far off, but you don't get equity.

This is the best summary of the situation. Sadly, there doesn't seem to be any levels.fyi data from any of the studios. Anecdotally, film, like the game industry, has a history of paying less than the overall market rate for software engineering because there are a lot of people who love it.

Some of the [animation] studios (e.g., Pixar, PDI) have also historically issued annual bonuses based on how the films performed. Visual Effects, however, isn't like that because the work is done for other studios. For example, MPC did much of the visual effects for both Jungle Book and The Lion King, both of which were produced and distributed by Disney.


Don’t forget Rhythm and Hues who famously went bankrupt and out of business, in the same year they won an Oscar for Best Special Effects.

This is not a business you want to be in, if you care about making money.

If you do this kind of thing because this is who you are, what you eat, breathe, drink, and dream, and there is no other thing you are capable of doing on the planet, then you might be able to make enough money to eat ramen for dinner.


The pay is usually good but not great. The reason I've left at times was due to sweatshop conditions. Although that hits artist positions harder than technical ones. A lot of places still have 50 hour weeks for everyone, which frankly sucks.


I have worked at several big studios and never witnessed 50h weeks as the norm. Core Pipeline / R&D do overtime very rarely and have a 40h/week with a lot of flexibility.

Artists is a different world and can feel very sweatshop-y around delivery dates for sure. There's a lot of crunch time -- probably similar to the gaming industry.

I wouldn't recommend being an artist in VFX unless you're extremely passionate about it.


This has been my experience also. It seems the closer you get to a single project the more your likely to overwork, while the more core you get the more steady the work seems to be. It seems to make sense as it's less sustainable to keep your core teams in crunch literally 24/7


Hmm. Image Movers Digital (IMD) was definitely 50-weeks minimum. IIRC, the "original" DD had the same policy.


Out of curiosity, if it's a policy is it in your contract? Or is it on the company intranet or something?

I've worked at places (not the movie biz) that had quite long hours but they always pretended it was 40h weeks and the extra was going "above and beyond," which everyone did who cared at all about ever getting a promotion or raise.


Yes, every contract explicitly said 50h/week paid hourly. Going home "on time" means a 20% pay cut. 40-50 wasn't even overtime.

On the plus side if you're young and single you'll be happy to get a "free" dinner.


Yeah, just take your FAANG base pay, and don't add on any of the large bonuses or stock grants. In my experience this holds pretty true for more senior roles, It seems to go down much more sharply as the roles get more junior.


I would love to (and I am a senior python dev), but I have zero experience in this area. Is still possible to get a job?


Yep! Look for roles in core pipeline, Random example: https://jobs.jobvite.com/lucascompanies/search?l=&c=Producti... and https://jobs.jobvite.com/lucascompanies/search?l=&c=Technolo... for Industrial Light & Magic.


Thanks!


Yes, but it depends on your area of expertise.

The film industry employs lots of people in infrastructure roles. Building services for task and asset Management. Websites. Data flow.

There's a lot of the bread and butter programming jobs as well


Don't limit your search to feature film type of post houses. Any post house with an animation department will need technical directors to work with pipeline workflows. Not just animation but anything needing heavy compositing, or workflows just working in frame sequences.


Do all posts on lawyers and doctors forums degrade into arguing about comp?


I should blog about using Python with Photoshop, that's also a huge time saver for Artists.


In the early 00s, the company I was at did complete automation workflows in PS & AE using javascript. The level of stuff that was accomplished would not have been possible to complete within deadlines without it. I took that knowledge to every job since. The worst was creating subtitles for Blu-ray/HDDVD before the regular apps were updated for the new formats.


I'd love to hear about that! Google sent me here:

https://pypi.org/project/photoshop-python-api/

But it would be cool to hear about what someone does in real life with Photoshop and Python, and with which libraries.



Fun fact: Photoshop was written by the VFX Industry -- Industrial Light & Magic, John Knoll.

Doesn't surprise me that it is also very scriptable


I was working with John Knoll on a project for about a month before somebody mentioned. It was a little bit of that late-onset star-struck feeling.


Please do!


Alright, I will do a quick write up. I guess I could post everything on Github (code and blog)? Suggestions?



Bookmarked, thank you kindly!


I'm not sure if they're using Python per se, but Netflix gave an interesting talk at KDD 2018 on how they're using machine learning in various parts of film/TV production.

One example is optimizing the workflow of a special effects director. They described how a typical person spends one day of their week reviewing scripts to determine which scenes are going to require CGI. They're traditionally had to read every page in the script. Netflix built a model that filters scenes to just those that are likely to need effects, saving time.

Of course, it's hard for me to independently verify the effectiveness of this model. If some false negatives get through (scenes that ought to have effects that aren't noticed until too late), I can imagine an effects supervisor not trusting the model and just reading everything.

It doesn't seem to have been recorded, but there's the description: https://www.kdd.org/kdd2018/applied-data-science-invited-tal...


Can we please stop making images of a MacBook with a cafe latte next to it?


that's an espresso.

I get where you're coming from, though. given the topic, the range of potential header/hero images goes into a ton of interesting territory. it'd be more fun to see some wireframes from Maya and Python code to match, or something.


Fwiw there is a 3D scene on the screen on the MBP.

It's definitely a lazy design on my part but I just threw it together since I figured it got the point across well enough.

I may revisit it in the future though.


Recently I've been doing a lot of work with Blender for my side project (https://lulimjewelry.com - custom 3d printed jewelry), and it has excellent python support.

I understand that Blended is also seeing more use in real professional studios, and its cool that python is such a big part of it.

I see Blender as one of the best examples of an open source project succeeding.


Do a lot of visual artists have programming skills these days?

Or I guess a better question is, do artists who have programming skills get higher pay, attention,etc from employers in this field?

I guess I’m curious to the state of the field of digital artists wrt programming.

Great read!


An artist is mostly about the art and doing things that result in beautiful images approved by their supervisors!

Knowing programming can make them more effective but it is not the job, you want something that your CG Supervisor approves and that looks beautiful in the screen.

There are usually Technical Directors (TD) that work close to the departments and know programming more to help the artists.

That said, some artists can be quite technical and know programming. The tool Houdini which produces FX (simulations for fluid, debris, fire, etc.) usually has a couple of programming wizards. They can be quite good in algorithms / hacking stuff together to make it work well in a scene, but not necessarily software design.


Most visual artists today do not have programming skills. It's a small minority of people in any studio who can code.

But that's largely why I created the course (at the bottom of the posts). I had a lot of artists asking to learn to code, and it was easier to make the course than to do it 1:1 with each of them.

With regards to pay and attention, people who can code are definitely more stable in regards to their careers. They are more likely to be kept on after projects, and generally have greater demand.

The downside is you'll have less attention than artists. You're not really creating the final imagery, so you're a bit in the background. That means you will be better off in the early and middle parts of a career, but it's harder to make it to the really high end jobs like Visual effects supervisors etc...however that's usually 10-15 years into someones career as an artist, and only for a select few, so it's not really a negative IMHO. Though on the flip side, it's easy to jump to traditional tech roles as well, if you find you are hitting a ceiling.


You might look into 'Data Artist'. It's a small but growing profession that's a bit of a hybrid of data scientist, data analyst, data journalist, and visual designer.

https://www.jerthorp.com/ is one such well known example.


Its a broad range.

But some camps have more programming skills than others.

For example, matte painting _tends_ to be more artistic,

where as FX and procedural tends to be more programming.

However, the artistic mindset is still equally important, regardless of how technical you are, its still got to look good.


Both Houdini and Substance tools are basically programming for artists. Unreal Engine Blueprints is visual data-flow programming. So to answer your question: yes.

The question isn't as much do you get higher pay for this, it's more about you can't even do most of the high tier CG work without knowing this style of programming.

Zbrush may be one of the last things where you can just sculpt things, but even that can get really technical really quickly.


Is there a stack exchange site or equivalent that allows easy access to existing solutions? :)


odforce (https://forums.odforce.net/) is a known houdini forum.


I would love to see a followup with some example code.

Could a regular person making YouTube videos benefit from using Python in their production?


A pipeline is all about coordinating between teams / departments. So a single person probably doesn't have much to gain (the main value would be the benefit of rigor / tooling, sort of like using git for your own local projects). A small team might though, particularly those who work on short films.

A single person making a YouTube series though or something might find a lot of value in the structured asset pipeline, publishing new versions and so on. But most of the production animation/film tooling is quite heavy weight.


I think the general consensus is that you have to publish on YouTube regularly.

Given that, what could one specifically automate on the production side to help with this effort?


I do have some sample code for tools on my Github for my course (you don't need to take the course, everything is commented etc) https://github.com/dgovil/PythonForMayaSamples

And as for whether Python can help, it most definitely can but it depends on your domain. When I do any repetitive operation, I'm always looking to automate it.


Yes, certainly. It does not need to be complicated, a little bit of automation can go a long way. If something is tedious, try to automate it. It's faster, more consistent, and frees you up to tackle other fires.

Some examples:

* publishing

* converting between file formats

* simple compositing pipelines

* sending/archiving files

* validation

* organization

* tracking (approval/completion)

* script repetitive tasks in programs to shelves or hotkeys

My first "useful" script was pre-composing an email that sends following a successful FTP send. My second was a helper to relink project mediafiles (which might be on another's desktop) as relative paths so I could open them on my computer. As you scale up, your tools will likely grow more formalized - writing code to glue programs filetypes and departments together, tracking, approval, publishing/rendering pipelines.


s/Weather/Whether/

I think this post highlights something important - programming and automation have a very broad applicability, and it doesn't matter what industry you work in, there's likely some aspect of it that would benefit from some understanding of what computers do well and being able to take advantage of that.

Generalised, industry agnostic versions of examples from the article.

* Applets that integrate with your tool of choice.

Practically native to the world of Finance, showcased here with modelling and animation tools, but the principle could be applied to any industry tool with an API. Video editing, CAD, Word Processing - every industry has their boilerplate or composable tasks which could have some assistance from scripts and extensions that fit your use case outside of what the programme would natively support.

* Workflow automation

We see here the 'pipeline' of storyboards becoming assets, becoming scenes, becoming films - however every job has processes, documents to review, authorisations and oversight that needs to occur.

A friend of mine once said 'Just use JIRA'. It doesn't matter what it is, track with JIRA. In contrast. a colleague of mine once opined: "having a system that passes documents around is the easy part. Having a system that allows all the right people the right access at the right times, enforces all the restrictions you need it to and asserts that all requirements are met and tests are passed is hard. And I believe him. He's currently the architect on a £20m project that is essentially just a workflow/pipeline system.

* Tiny one-off tasks

One of the key parts of why I recommend 'Automate the Boring Stuff with Python' [0] to beginners is the books central thesis: anyone can program, anyone can benefit from programming. It shows how creating small, throwaway scripts can greatly reduce some manual tasks. I think the world would be a less stressful, more efficient place if more people knew about shell commands, regular expressions etc. I've seen people spend hours, even days painstakingly doing tasks that could have been done in seconds by a well placed `sed` or a short perl script. To that end:

* Applying programming concepts to everyday life.

Notably here we have dependency trees shown in the form of the workflow tools, but 'compilation time' checks could be useful in so many industries that currently don't use a lot of technology. Change a part of a document that is depended on by other documents/sections? Flag that the downstreams need review.

In short, this article gives a good answer and some excellent examples to the question 'why should I learn to program' or, even, 'why should everyone learn to program? why should we teach coding in schools?'.

[0] - https://automatetheboringstuff.com


Thanks! I corrected that typo.


Python for feature film (TL;DR): How to use Maya with embedded Python interpreter.

I was expecting an open source pipeline and tool chain description.


The majority of the content on the site isn't specifically Maya related, though Maya is the main DCC for the studios so it's definitely a focus.

The aim of the post was more to bring visibility of Python involvement in the process, not to be an explicit deep dive


While Maya is widely used at present, in my opinion it is in serious trouble in the near future from competition with Houdini. SideFX keep up an amazing pace of development, and Autodesk don't even seem to be trying to compete at that level. That said, it doesn't reduce the relevance of python for vfx at all - it's definitely the main language for getting vfx stuff done.


Most definitely, SideFX and Blender are eating away at the mind share for Maya. I don't see SideFX replacing Maya anytime soon for animation or organic modeling (and therefore rigging) work, but definitely is taking over everything else. Blender is gaining a lot of traction in those areas though, so I know quite a few studios investigating Blender+Houdini productions now. Though many are still just early testing.


I think a serious effort on animation is absolutely underway in Houdini (the new 'KineFX' released in 18.5 the other day is a foundational element of this, as I understand it.) Haven't heard anything other than vague hints but they may also be working on something that could start to eat part of the sculpting/painting pie (zBrush/mudBox/etc). Modelling wise SideFX are going great guns (they hired some of the awesome Softimage devs when Autodesk shut that down). Houdini's modelling toolset now at least rivals if not surpasses what is available in Maya out of the box, however there is a massive amount of inertia in this department. Modellers seem to get a bit stuck on specific tools, so things don't tend to change until new modellers start coming in, bringing the new tools with them.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: