Foundry, Open Source & You: A Digested Guide
Open source technology continues to be a hot topic as 2020 marches on, and no wonder: the potential it holds for fostering more collaborative relationships throughout the industry and workflows across artists, teams and studios is undeniable.
In a nutshell, once a technology is open source, it’s open to everyone. A tool or program’s source code may be released under a few different possible standard licenses in the industry, to which the public is given access, often without any strings attached. Organizations are given the opportunity to write and support their own bespoke software, before freely sharing this with other organizations, without having to pay a third party license.
The benefits of this are immediately tangible, and thoroughly explored in this article in driving the move towards open standards. Open source technology is capable of connecting multiple areas of the pipeline and different systems together, allowing data to flow efficiently throughout—from standard file formats, to integration between applications, to machine learning models in Foundry’s own Nuke, and beyond. These principles pair perfectly with our efforts to put power back into the hands of our clients to help them fulfil their creative vision, faster.
Read on to find out the ways in which open source technology powers up Foundry’s product portfolio and research initiatives—and what this means for you.
Cracking collaboration wide open
Customization, flexibility and modularity form an intrinsic part of the DNA of Foundry’s tools, empowering teams to work together whilst saving them time, so they can spend it doing more of what matters.
Underpinning all three Foundry tenets are open source philosophies and technologies, which not only allow developers to extend our tools in a way that suits their team or pipeline, but also act as a main driver behind initiatives like the ASWF, of which Foundry is proud to be partnered with in upholding collaborative content creation across the industry through open standards.
Given the importance of file formats for moving data across a pipeline, open standards are a critical component of open source technology. They prove integral to the way the visual effects and animation industries work in encouraging open and easy collaboration across teams, studios and pipelines. That’s why support for standards like OpenEXR, OpenColorIO and OpenImageIO is rock-solid in Foundry tools Nuke, Mari and Katana, as Simon Robinson, Foundry’s Co-Founder, explains here.
An emerging key player amongst open standards is Universal Scene Description (USD). We’ve already written about how it’s set to change the face of VFX—and USD has certainly lived up to this forecast, proving pivotal in encouraging smart, collaborative and parallel department workflows, which are themselves crucial to realising creative intent quickly with real-time feedback.
That’s why Foundry helped Pixar port USD/Hydra to Windows in 2016, and was the first to adopt Hydra for a viewport in Katana 3.0 in 2018. In January 2020, Katana 3.5 shipped with ready to use USD plugins with the code open-sourced on Foundry’s Github. All of this enhanced Katana’s renderer agnostic workflows, allowing studios to set up, experiment and build powerful USD production pipelines.
You can check out the full range of open-sourced USD plugins available for Katana here. Alongside these, we’re working on USD plugins for Nuke that will eventually be open sourced as well—watch this space.
For Foundry’s product teams, workflow is king as we recognize that usability is just as important as performance and customizability.
To that end, our products absorb open source technology so we can enhance leading integrations with as little impact on the creative process as possible, leaving artists free to focus on their work.
The 3Delight render engine, for example, shipped as part of the Katana installer, offering a production ready, out-of-the box experience for all users and promising elegant workflows that encourage uncompromised creative focus. The 3Delight team embraced the open source collaboration within the industry by open sourcing their Katana integration as well as all the other integration plugins for other DCCs.
Katana pipeline developers can reference the 3Delight Katana plugin because it’s open source, then customise and change the parts they need to make it work for their tools and pipeline or support the development of a plugin for a custom renderer.
Later, in 2019, we released Mari 4.5 with the Arnold Standard Surface from Autodesk as part of Mari’s new Material System. The Arnold Standard Surface shader itself was open sourced by Autodesk as a contribution to various efforts in the area of material transport.
Mari 4.5 allowed artists that use the Arnold render engine to paint textures in Mari with a higher degree of confidence that their art will look correct in the final render, reducing feedback loops between Mari and Katana, and offering a more streamlined look development process.
Suffice to say, both of the above integrations wouldn’t be possible without open source libraries in fuelling interoperability and connected ecosystems of tools and software.
Machine learning made accessible
Open source initiatives extend beyond Foundry products and into our research and development efforts, too. One such example is ML Server—an open source client/server system that enables rapid prototyping, experimentation and development of machine learning (ML) models within the familiar structure of Nuke using the tool’s Python API.
Broken down, ML Server is essentially a client plug-in inside Nuke that communicates with a server that can run and return the results of an ML inference.
Our inroads into ML Server come off the back of the recent rise in interest in machine learning and the possibilities it can unlock for the visual effects (vfx) industry. However, with this rise in interest has come a myriad of challenges in regard to its practical implementation in VFX pipelines, as explored in this article.
ML Server was born in response to these challenges; it aims to transfer new ML algorithms into the hands of artists and technical directors in vfx and animation studios, so they can start experimenting with ML within their existing pipelines. As a vehicle for exploration, teams can create their own models as soon as ML Server is set up and see the results in Nuke within minutes.
Happily, machine learning has benefited from free and open exchange of ideas and technology thanks to consistently open and free source code libraries that have appeared and endured over the last decade. These same collaborative principles underpin ML Server, which can serve as a shared resource amongst artists or ML practitioners thanks to its server status.
What’s more, its relatively static client code is decoupled from the model code, which allows for the latter to be rapidly iterated on without the cumbersome efforts of rebuilding plugins or reloading host software. When resultant changes are made on the server, incumbent updates can be reflected across clients immediately.
Want to explore machine learning in Nuke? For key data, code and examples, check out ML Server on our GitHub repository.
Speaking the same language
Projects like ML Server serve as a prime example of where cutting-edge tech couldn’t make it into our products without robust support from open source programming languages such as Python and C++ . These prove indispensable in allowing users to extend our tools and integrate them with other apps.
Nuke owes much of its provenance for being open and customizable to a Python API with Pyside, available across the entire Nuke family. The Python API can be used for full pipeline integration and automating common tasks and procedures. PySide is also included to allow users to build custom user interfaces via Python and the Qt frameworks.
Meanwhile, languages like C++ underpin the Nuke Developer Kit (NDK), which allows writing and compilation of C++ plug-ins for use inside of Nuke—from image process operators to Deep Ops and custom Op types. Alongside this, the OpenFX (OFX) API is an open C standard which supports building cross-host plugins like Mocha Pro and Silhouette Paint, enabling these to work on any applications that support the OFX standard.
Katana also benefits from a choice of scripting and programming languages, providing great flexibility for any level of pipeline developer. Support for Python, Lua, C and C++—along with powerful libraries like ILM’s Imath—means users of Katana can always expect unbridled customizability when integrating it into their pipeline. The Python script editor has a rich tab completion system to aid in coding and learning. Paired with the searchable developer docs, this helps users to get up to speed in a flash. Learn more here.
More recently, Katana 3.6’s newly introduced OpWrite Node allows programmers, pipeline developers and C++ savvy TDs to quickly build custom “ops” from within Katana. Developed internally at Foundry to support Katana’s development, this great tool is now being shared with everyone in support of open and flexible workflows.
Leading asset management
Open source scripting languages like the above are crucial in driving Foundry product’s integrations with leading asset managers like Shotgun and ftrack, as well as custom asset managers. Katana, Mari, Nuke and Hiero all offer flexible connections with asset managers through APIs like Python, ensuring smoother collaboration and organization between artists in teams.
These same benefits are explored by Marcus Dryden, Head of 2D at MPC, in a previous article: “Integrating Nuke Studio into ftrack evolved our pipeline efficiency so much. Its versatility makes it a great end-to-end tool.”
Toya Drechsler, 2D Supervisor at MPC, echoes this point: “Our team has made the ftrack integration smooth and easy, and the tools are helping me as a lead to conform and output plates fast and precisely with preset export structures that make a studio-wide standard easier to follow.”
Foundry’s Nuke family of compositing, VXF editorial and review tools also offer integration with the Shotgun Pipeline toolkit. The developer guides for Nuke Studio and Hiero include example Python integration with Shotgun, as well as simple spreadsheet, to help those building their own integrations get up and running quickly. The example Shotgun and Hiero integration can be found both here and in Nuke 12.1v3 onward, pairing perfectly to take your multishot management, editing and review efforts to new heights.
And it doesn’t stop there: artists and TDs working in Katana can expect a full set of APIs that cover many different aspects of the production process. For example, there is an API to connect to asset management tools, and we’re delighted to soon be open sourcing Katana’s Shotgun TK integration. The result is a much higher degree of control and flexibility for users when adding this leading asset manager to their pipeline. Watch this space.
Alongside this, artists working in Mari can unlock their texture workflow thanks to an integration with the Shotgun Pipeline Toolkit, offering the use of Shotgun Loader, Publisher and other apps inside Mari’s interface for a seamless creative experience.
Since a key element of automation is pipeline integration—supported by asset management integrations like those above—Foundry were prompted to investigate how best to use Shotgun to improve efficiency and customization for look development teams. With the introduction of Mari 4.5’s new Materials System, we conducted an experiment to see if we could integrate Mari’s materials into Shotgun.
This consisted of applying Shotgun version controlled Mari Materials onto selected regions of certain assets from within Mari, which scrapped the need of having to preload these into Mari’s shelf. Instead, all the materials were version controlled by Shotgun’s infrastructure.
This experiment went so well that we began to ask ourselves: “How far could we push the Shotgun integration in the context of automating the first pass of look development?”
Watch Rory Woodford, Mari Product Manager, as he deep-dives into the happy outcome of this question: by using Shotgun, you wouldn’t need to go into Mari and Katana at all to complete the first pass of look development. Now that’s what we call automation.
A whole Nuke world
Boasting thousands of community-developed tools, gizmos, presets and scripts using Nuke’s APIs from Python to the NDK to BlinkScript, Nukepedia is your go-to destination for a truly one-of-a-kind Nuke experience.
Some of our team’s favorites include:
Animated Snap 3D - adds three new options to Nuke’s snap_menu in 3D nodes, allowing for objects to match the position, rotation and scale of a selection of vertices over a specified frame range.
mScatterGeo - a gizmo that supports scattering on 3D geometry vertices, faces and density map in Nuke.
Das Grain - simplifies the re-graining process by automatically adapting the plate grain to your comp, removing the need to match grain manually.
And that’s a wrap
Whether you prefer an out-of-the-box experience or like to tinker under the hood to create bespoke, custom tools, we hope that this guide proved useful in showing how we aim to support you every step of the way. Keep an eye out for future updates from Foundry on our open source offerings and integrations that aim to enable unparalleled modularity and versatility when building your pipeline.