This article originally appeared in DP 03 : 2018.
Pipelines for film projects are everywhere – pipelines for the user and artist are nowhere. In fact, every project has a pipeline that organises the process and structures teamwork. This makes the lack of practical and accessible information all the more alarming: How is a project set up and executed? One reason for this is that the topic can be outlined individually. Everyone can mean something different when they use the word pipeline. At the same time, each project seems to be too individual and the local advantage too great to strive for publication.
As a result, all projects are essentially the same: a project is managed by a team and has the goal of a product (film, game). This means that communication and the fulfilment of tasks are at the forefront. As projects are developed by people, none of them fit into a template. Even if a team actually realises the same VFX project, their collaboration determines which software, structure and hierarchy is best suited to fulfilment. Standards help to handle projects objectively, but the process still needs to be customised to the respective team. This is where the open source pipeline Plex comes into play, which was developed as part of the Technical Director course at the Baden-Württemberg Film Academy. Plex is an animation, VFX and games pipeline that manages the most important processes of a production. Its core is a flexible and independent system for small and medium-sized projects and companies. Its main tasks include managing folder structures and setting and maintaining data flows for collaborative working. The system was originally developed for the VFX short film “Breaking Point” (VES Award 2017 for “Outstanding Visual Effects in a Student Project”). As a modular framework, Plex can be easily expanded with additional software packages, plug-ins and scripts. At the same time, it is possible to layer several pipeline levels on top of each other, e.g. to have a company pipeline as a foundation, partially overwrite/add to it in the project and individually test new elements without missing the updates of the other levels. The core of the system is mainly formed by the scripting language Python and the UI library PySide, which form an interface for most DCC packages (Maya, Nuke, Houdini, 3ds Max etc.). Python allows a project- and user-centred manipulation of the working environment to enable a personal and customised way of working. In short, the software can be customised and extended to suit individual requirements. The scripting language is also characterised by its simplicity and accessibility.




Documentation
Flooded with information in the information age, it is extremely difficult to find comprehensive documentation on the organisation of film/game projects. At the heart of Plex are empirical project standards that are comprehensible to the user and can be optimally dovetailed with supplementary scripts. In the article on pipelines for animation and VFX productions (see DP 02:16, available for free download at http://www.digitalpro- duction.com), we looked at the importance of folder structures, software pipelines and naming conventions for project communication. Templates for production visualisation and background information on certain behavioural patterns complete the explanatory picture.
Script pipeline
The script pipeline is the part that most people think of when they hear the word pipeline. It comprises a library of scripts and apps that simplify and regulate day-to-day work inside and outside the DCCs. It automates organisational processes to free up time for productive and creative work. The apps are available to the artist via menus, shelves and toolbars and can be customised for the respective project.
Everyday example
A Maya instance is started via the desktop app. The software opens with the project settings including additional scripts and plug-ins. The artist starts a new shot, builds the first geometric objects and references existing ones in the scene. After a while, arSaveAs is executed, the shot name (s010_intro) is entered, the task (GEO) is selected and confirmed. arSaveAs creates the respective path including all necessary tasks and saves the file (s010_intro_ GEO_v001_ar.mb) in accordance with the pipeline. After a few more changes, arSave is started, a short comment (“first set blocking”) is noted and saved as an up-versioned scene (s010_intro_GEO_v002_ar.mb) together with a screenshot. After the first version is ready for distribution, arSave is executed again, this time “Publish” is ticked and published. Now the colleague can reference the latest publish version in the lighting and create the first lighting setup until the next update.
Shortly after publishing, we receive an email asking us to take a look at another shot where something is wrong with the geometry. We open arLoad, select the appropriate shot, look at the respective comment (“building is broken”) and open a new Maya instance. After the first light has been rendered, the passes are checked in Nuke and the current status is rendered out with arWrite and an overlay for the review.
Development
The modality and Python focus of Plex makes it relatively easy to expand the system with your own or third-party scripts, plug-ins and software packages. Custom scripts can simply be copied into the script directory and can be called up directly in the software. Plug-ins usually require additional environment variables to be set in the configuration files. Similarly, any other software that has a Python connection (e.g. Blender, Mari and many others) can easily be added to the software pool.
Plex is above all a framework that forms a framework and can be optimally extended. The main elements lie in the template library, which predefines a large number of functions. In particular, apps such as arUtil ensure consistency in appearance and centralisation of recurring functions and their reuse. This forms a template for existing and future scripts and can be customised at any time.
Another point is the centralised configuration files, which make scripts flexibly adaptable to the respective project by simply changing paths, resolutions, etc.
Above all, they allow individual settings for individuals, which provides flexibility for exceptional situations and simple debugging for the developer. In the Pro software, a different function is executed to save the scene, while the rest of the information processing in the script is software-independent. File save and load scripts are essentially project- and software-independent. This means that the same script with the same UI can be used in practically all software packages. This creates visual uniformity and greatly facilitates maintainability and expandability.
Utilisation
Plex was published under the MIT licence, which allows any user to modify, distribute and use it commercially. The system is not trying to be on the same level as Shotgun or fTrack, but to offer a full-featured, extensible structure that is freely available and could be the basis of your next project. To use it, simply install Python 2.7, download Plex, run the respective Maya/Nuke/Max/Houdini.bat under exe/windows and off you go.
Conclusion
Open source is increasingly taking up its own block in our everyday lives. Free access to software and information is becoming increasingly important for many people and companies because it not only means savings, but can also have a passionate community behind it that promotes the exchange of knowledge. Plex is part of this: the aim is to fill the existing gaps and give projects the chance to work to industry standards without going through the long process of development and information research. Use, modify, share or build your own pipeline, the main thing is to see yourself as part of a team where you win when you share. And at vimeo.com/richteralexander/plex you will find plenty of video material to watch live – with chapters on Quick Start, Add Plugins, New Project and Development Tips and Configurations.





