Pixar’s Universal Scene Description also known as USD, is taking the 3D world by storm. Production pipelines around the world, big and small, are adopting the technology at an unprecedented rate. In this multipart series, I’ll be giving you some background on what USD is, where it came from, why you want to be using it, its history in Maya, as well as our plans for its future in Maya.
3D Productions Have Big Problems
Why are so many productions rushing to adopt USD? It all starts with three main problems that exist in visual effects, animation, gaming, and any industry where large-scale 3D datasets are utilized.
Pipeline: Studios need to integrate many different tools that use different data formats into a single pipeline.
Scale: Artists need to work with large data sets, and they need them to load quickly and remain interactive.
Collaboration: Assets are complex, and enabling many artists, disciplines and studios to collaborate together on an asset can be challenging.
Pixar Cracks the Code
Fortunately, there is a solution to these vexing issues. USD enables us to address each and every one of those problems in a consistent and DCC agnostic way. That is why so many are pouring resources into USD adoption today. So, what exactly is USD, and how does it solve these problems?
Pipeline: At its heart, USD is a composition engine for 3D data represented by an extensible common language, allowing data to move between products, supporting both native variants, and native editing.
Scale: It's built for speed and scale. USD produces a lightweight, highly optimized scenegraph enabling fast loading, and fast playback of large production data sets. It also provides a performant system for animated geometry caches and an optimized rendering framework dubbed “Hydra”.
Collaboration: It leverages powerful sparse overrides and a robust referencing system enabling non-destructive collaborative editing.
USD was developed as an in-house tool for Pixar productions. For more information on USD itself, be sure to read "Heritage of USD at Pixar" at openusd.org where Pixar maintains a fantastic site with a thorough introduction to USD.
History of USD in Maya
While Pixar is well known for proprietary tools in their pipeline, they use Maya to produce assets for their assembly and layout workflows. In order to support a USD-based pipeline, they created a USD plugin for Maya. Graciously, this plugin was included with USD when they open-sourced the project.
Once the project was open-sourced, Maya-centric studios rushed to use it. Among the early adopters was Animal Logic, who immediately recognized the power of USD and sought ways to leverage it in their productions. As Animal Logic adopted USD for shot-based workflows in Maya, unlike Pixar, they quickly saw the need to fork and extend Pixar’s Maya USD plugin. In the process, they created some truly innovative shot-based workflows built on USD.
Fortunately for everyone, Animal Logic also decided to open-source their efforts. Together, both studios’ plugins enabled production pipelines world-wide to take advantage of the power of USD in Maya. Unfortunately however, this left the Maya USD story fragmented, leaving studios to choose between the available plugins.
Most studios ultimately adopted both plugins for their workflows. While Pixar’s plugin is used for its robust translators supporting import/export, Animal Logic’s plugin is adopted for its advanced shot-based workflows and in-memory data translation.
To address the fragmentation, at Siggraph 2018, Pixar, Animal Logic, and Autodesk came together to announce that they were going to put the “Universal” back into Maya USD. Luma Pictures, with their amazing Maya to Hydra work, soon joined the effort as did Blue Sky, to bring everyone’s technology together to produce an official Autodesk Maya USD plugin in one git repository.
Vision for USD in Maya
USD in Maya is a compelling story. The overwhelming majority of productions today leverage Maya, but have been left to devise their own workflows and implementations to support data interchange with the other tools in their pipeline. The combination of USD and Maya are a match made in heaven, one that can immediately alleviate those challenges.
So, how do we envision that looking? Simply put, we want to make Maya an awesome place to create, assemble, and work with USD. We want to bring the strengths of a USD pipeline to the industry-proven modeling, character animation and simulation workflows in Maya, allowing you to work natively with USD, but use the Maya workflows artists know and love.
Goals for USD in Maya
How do we get there? What will success look like? We have three main goals to fullfill our vision.
First, we want to have natural, native USD support in Maya. We want Maya data and USD data to look and feel the same. As an artist, you shouldn’t have to think about what the underlying data model is. We want you to use the same Maya workflows, interfaces, and tools that you are already proficient with, all while adding new workflows that USD as a technology, enables.
Second, we are following Pixar and Animal Logic’s lead by implementing the official Autodesk Maya USD plugin as an open-source project, working with the studios and the open-source community at large. That means we want you to join us.
Last, we want to focus on the things you can’t do. Current implementations of USD in Maya are limited by the API that we have exposed. We are now extending Maya's APIs so that you have access to the functionality you need to integrate USD and similar technologies into your production pipelines.
Focusing on Assembly and Layout Workflows
USD is broad in its functionality, while Maya hosts a wide array of workflows for all areas of production pipelines. Combining the two in such a way that takes advantage of both of their strengths is a monumental undertaking. With this in mind, our first step was to define the scope of workflows to start with. We are focusing our initial USD work on Assembly and Layout workflows as they touch on many of the fundamental processes in Maya.
Assembly and layout allows us to tackle file IO, editing and modification workflows, creation workflows, selection functionality, and display capabilities. This won't specifically be focused on layout and assembly artists, but rather everything layout and assembly touches in the pipeline from modeling to rendering.
So, whats next? With assembly and layout workflows complete, we will be turning our attention to shot-based workflows. People already familiar with the Animal Logic shot-based USD workflows, have gotten a glimpse at just how powerful USD can be in a Maya pipeline. One of the most impressive uses is how they leverage USD variants and a custom USD schema for representing Maya references. By combining the two, they have provided a workflow that allows artists to use USD geometry caches to represent their scene, but selectively swap out characters with their fully rigged Maya representation for interactively animating them. Once the Maya rig has been loaded, you can continue to pose the rig and the edits can be pushed back in to USD at any time.
In the screencapture below, the character walking into the frame is represented as a USD geometry cache before you see the user swap variants to the rigged representation.
It is worth mention that this also takes full advantage of Maya's parallel evaluation and cached playback on the rig. Thanks to cached playback, we are able to preserve high framerates comparable to the playback of the USD cached geometry.
Up Next - USD Plugin for Maya: Fundamental Pillars
In our next post in this series, we will be discussing specifics on how we plan to deliver our vision for Maya USD and give you a sneak peak at how its all progressing.
- Maya USD on Github
- Pixar USD
- Autodesk Maya USD Vision Series (featuring Pixar, Animal Logic, and Nvidia)
- The University of Technology Sydney, Animal Logic Academy