Skip to main content

01 - Before We Begin…

Before We Begin...

TLDR: Python is widely used in making movies. This guide is meant for those with at least a basic understanding of Python. You will need to download 3rd party tools to follow along with this guide.


Why does this guide exist?

Why use Python only for data science and web development, when you can also use it to make movie magic? The visual effects and animation industries offer very exciting work that is abundant in opportunities ripe for the taking by software engineers and developers alike. If you have ever tried to land a job as a technical director or have just been interested in pipeline development, you would know how few resources about VFX pipeline development specifically are available out there. This guide is here to help remedy this lack of concise, structured information about VFX pipeline and workflow tools development.

Oddly enough, pipeline systems generally do not vary much from studio to studio, since the core concepts and workflows involved are more or less the same, with varying levels of technical complexity and features, of course. This means that the ideas laid out here will ring true if you work in a real-world post-production environment. However, please note that we will be creating a bare-bones pipeline system, not a comprehensive one, as a fully fleshed out production-grade pipeline system can get very complex, yet never truly complete due to the ever-changing nature of VFX work. It’s ultimately up to you if you want to continue building on the foundations laid out in this guide and I encourage you to do so!

Who is this guide for? 

This guide is for those who really, really like Python programming and have an interest in the technical side of visual effects for film and/or 3D animation. We will be going through the fundamental steps of building a pipeline system that can support artists working on a VFX project by handling and structuring the data involved in the post-production process. All of this could be very beneficial to those looking to get into the VFX/animation industry or the development enthusiasts, who want to expand their knowledge of how programming can be used for creative purposes.


What are the prerequisites for following this guide?

You will most definitely need to know at least the fundamentals of Python object-oriented programming, since the purpose of this guide is not to teach you all things Python. We will also be using a number of external Python libraries and APIs, relevant further reading and documentation links will be provided throughout. Some knowledge of general relational database concepts and industry standard VFX software packages such as Autodesk Maya and The Foundry’s Nuke would also be beneficial, but not essential, as the relevance of these may change over time and we won't be too concerned with DCC-specific functionality.


How do I know if my Python skills are good enough for me to follow along?

Have a look at www.tutorialspoint.com/python – if at a glance you are familiar with the majority of topics covered, you’re good to go! Otherwise, that website is a great place to start improving your understanding of Python programming.


What are we going to be using for this guide? 

For programming, we will be using the following free open source tools:
  • Python 3.4 (for just about everything);
  • PyCharm Community (an IDE for Python development);
  • DB Browser for SQLite (an application for displaying and editing SQLite database files);
  • git (for storing, accessing, versioning and distributing our code repository);
For post-production, we will be using the free non-commercial/educational versions of:

Comments

Popular posts from this blog

03 - VFX Database Design

VFX Database Design TLDR : Python can be used to create and manipulate relational SQL databases to represent all kinds of data involved in VFX production - artists, departments, projects, assets, sequences, shots, tasks, resources, versions, etc. In order to organize our data and easily keep track of our assets, we will use a relational database. While some smaller studios might only use a directory structure system or a NoSQL database such as MongoDB, good old relational SQL databases are by far the most widely used and arguably most efficient way to manage data in a VFX context. I’m not claiming this is the best road to take, but if it’s good enough for most global VFX powerhouses – it’s good enough for us! Note that throughout this entire guide, I will be focusing on clarity and functionality, rather than hardcore programing efficiency and ultra-fast performance. Before writing any code, we should consider what our database should look like conceptually and what tables

02 - The VFX Pipeline in Brief

The VFX Pipeline in Brief TLDR : Projects (a.k.a shows) have sequences and assets. Sequences are made up of shots. Shots can contain assets. Assets and shots have certain tasks that result in resources, which can have many versions.