8 ms·
Python For Feature Film
- dagmx 6y agoThis 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)
- aprdm 6y agoIf 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 https://www.youtube.com/watch?v=HuV0_AbDgYk * EuroPython: https://www.youtube.com/watch?v=bPNGn1XHCKw https://www.youtube.com/watch?v=bPNGn1XHCKw
- boulos 6y agoCool! 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?
- dagmx 6y agoI 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 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!
- privong 6y agoJust 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.
- dagmx 6y agoOh 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.
- aprdm 6y agoFor 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 !
- packetlost 6y agoThere 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.
- dagmx 6y agoThe 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.
- aprdm 6y agoFWIW 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.
- dagmx 6y agoOh 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
- CoffeePython 6y agoDo 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!
- 127 6y agoBoth 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.
- xythian 6y agoYou 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/ https://www.jerthorp.com/ is one such well known example.
- aprdm 6y agoAn 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.
- tmaly 6y agoI would love to see a followup with some example code. Could a regular person making YouTube videos benefit from using Python in their production?
- boulos 6y agoA 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.
- tmaly 6y agoI 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?
- dagmx 6y agoI 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 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.
- willjp 6y agoYes, 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.
- Zhyl 6y agos/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 https://automatetheboringstuff.com
- amelius 6y agoCan we please stop making images of a MacBook with a cafe latte next to it?
- tessierashpool 6y agothat'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.
- dagmx 6y agoFwiw 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.
- kelvin0 6y agoPython for feature film (TL;DR): How to use Maya with embedded Python interpreter. I was expecting an open source pipeline and tool chain description.
- dagmx 6y agoThe 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
- danwills 6y agoWhile 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.
- dagmx 6y agoMost 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.
- danwills 6y agoI 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.
- kelvin0 6y agoI should blog about using Python with Photoshop, that's also a huge time saver for Artists.
- dylan604 6y agoIn 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.
- lozf 6y agoPlease do!
- kelvin0 6y agoAlright, I will do a quick write up. I guess I could post everything on Github (code and blog)? Suggestions?
- biztos 6y agoI'd love to hear about that! Google sent me here: https://pypi.org/project/photoshop-python-api/ 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.
- gxqoz 6y agoI'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-talks/view/jen-walraven https://www.kdd.org/kdd2018/applied-data-science-invited-tal...
- doctoboggan 6y agoRecently I've been doing a lot of work with Blender for my side project (https://lulimjewelry.com 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.