USD: what you need to consider when adopting Universal Scene Description into your pipeline
It’s easy to get caught up in the excitement around Universal Scene Description (USD) that seems to be at an all-time high as we move into the new year. Exciting, regular developments in the space continuously power new and improved software iterations for the VFX industry around the globe, from Houdini’s latest offering, to Foundry’s own efforts in making USD a part of our broader portfolio that covers many key roles in industry pipelines, to Autodesk’s announced plans for USD support in Maya.
We’ve already explored how USD is set to have a seismic impact on the VFX industry, following in the wake of game-changing contributions made by open standards like Alembic and OpenEXR, covered here.
And as USD continues to dominate industry discussions, artists and studios without it in their proprietary pipelines run the risk of catching the dreaded FOMO, and it’s easy to see why.
Adopting a USD pipeline has the promise of advantages—like unbridled flexibility, modularity and interoperability of tools—which may make its adoption seem like a no-brainer.
But USD’s rapid growth flags a ‘proceed with awareness’ caveat, and when taking a real-world approach to adopting a USD pipeline, there is a balance of pros and cons to be weighed for the short term as USD development continuously evolves.
The raison d'être of USD is its ability to facilitate the continuity of decisions throughout the pipeline by threading a universal language throughout it, which in turn drives a consistency of visualization.
So rather than having pipeline production follow a waterfall structure—whereby each stage of the process can only build upon the completed work of the previous stage—USD allows for overlapping work to be expressed as layers. This enables teams to work in tandem and upstream changes to be propagated forward through the pipeline without requiring massive efforts from each team to update their work.
Foundry Engineering Manager, Robert Fanner, explains: “Something modelled very early on can be tweaked later on down the line more consistently and more easily than before.”
The result: less time spent manually processing, and more time for creativity.
Factored into discussions about the awesome power of USD is what does all this layering, the files it creates, and the management of those files mean for a production pipeline. As an example, the ever famous USD Kitchen scene is composed of 76 assets with 3 files each and one master description file in either instanced or non-instanced form. So, as a layout, that’s 228 files in 76 folders—all of which in a production setting will need to be properly named, located, versioned and managed.
This means that USD’s flexibility comes with a cost of developing a pipeline with the ability to manage these files and updates involved in the layering workflow, so artists do not have to do it, reducing the risk of human error.
Speaking of artists...
Building a USD pipeline that offers a cohesive artist experience takes time and effort
With the rising adoption of USD comes a shift toward making the 3D data and assets of an artist's pipeline—models, shading, rigging, animation, lighting, etc—support USD data and workflows.
As touched on above, this is to streamline pipelines in order to allow for different artists to work on the same project without interfering with each other, by layering their work on the group before them. And with more and more studios working together in an increasingly globalized industry, a USD pipeline harbours the potential to facilitate cross-studio collaboration in the distant future—to an extent.
In this case, two pipelines can utilize USD but, at the same time, be both very different structures, especially during these early days of USD as facilities customize it to meet their world view of their production challenges. Taking layers—the core of USD—as an example, each facility will need to figure out how best to structure these when working together. If the layer structure between both doesn’t match, then the benefits of using USD in this case won’t come to fruition.
The same can be said of custom schemas. A facility can create their own to describe the data of a specific thing and its functionality within a scene. But custom schemas are tied to a facility and not USD overall—so unless another facility has that particular custom schema, it won’t appear when the file is opened, making them slightly non-portable.
In essence: studios need a forward-thinking pipeline design when considering a USD implementation. It’s the studio’s responsibility to create a pipeline that works with USD as it matures over the next few years. Building a pipeline that offers a cohesive artist experience takes no small amount of thought, work, design and coding before the benefits of USD can really be felt wholesale.
Working in USD scene graph can get complicated
The power of USD lies in its layering system, through which a series of changes are composed together to create a high-quality 3D scene graph for any point in the process. The average artist may therefore never need to know how the scene was constructed for them; they only what they need to do for a given task. We don’t imagine our next point to be a deal-breaker when considering a USD pipeline, but it’s something worth considering—especially for artists who are perhaps a little less familiar with the tech.
Anything added or exported in USD becomes difficult to delete. Instead, the USD file simply gets hidden, so as to avoid breaking the structure of the scene graph which deleting a USD file may cause.
This makes editing in scene graphs slightly more complicated. As an artist, you’d probably expect to be able to edit seamlessly up and down the hierarchy of a scene—but the introduction of USD doesn’t make this straightforward.
If USD files do get moved or deleted, it can lead to lengthy scene clean-ups, which may prove detrimental to a project’s workflow and deadlines if not factored in. Thus the file management of USD data, when it comes to additions and subtractions, is a key aspect of any future USD pipeline a studio might build.
USD documentation and production practices are still growing
There's a common sentiment amongst adopters of USD that there exists a large gap in the knowledge base when it comes to best production practices of its implementation and usage, because USD is young and evolving. Happily, this challenge will disappear over time.
USD originated with Pixar, who have since produced helpful and informative starting documentation to get artists and studios up and running with USD. Houdini 18 documentation also houses a host of helpful USD workflow information, and Autodesk and Foundry are starting to share more information on how USD will work with their tools.
Despite this guidance, it will take some dedicated time to investigate and test the best practices for a studio’s first generation USD pipeline. They must assume that new information or changes in the rapidly evolving USD technology means that their USD pipeline will be a work in progress for a few years. As a result, studios must spend time understanding if mapping USD to their current workflows is a future-proof investment, or if adopting USD means larger changes in workflow.
As for the available documentation, 2020 will likely see some headway in unifying and rubber-stamping USD guidance and best practice across the industry. Studios participating in building a USD pipeline can help support this by sharing their findings with the broader industry in the spirit of the open source project.
USD is still maturing as its adoption gains momentum
Foundry has already touched on the rapid pace of USD development causing teething issues, and our sentiment still stands: are the hopes and promises of USD currently exceeding its stage of development? It depends on what you are trying to achieve.
New and improved iterations of USD are currently being targeted for a three-month cadence, with releases sent to the GitHub repository, where before it was every two months. Whilst the slightly slower pace provides some respite for Technical Directors and studios, it’s still fast enough to continue making important changes for a while, creating challenges for both studios and commercial software developers.
A key sign of technical maturity will be when the VFX reference platform adopts a set version of USD each year. Until this point, studios can expect the development of USD to continue at pace which brings challenges, and should factor in both the benefits and growing pains that this will bring.
Studios looking to be experimental with USD tech—whether that be through writing their own tools, using newer concepts or playing with deeper integrations—should be aware of the trade-offs of locking into a specific version of USD, which can cause issues when new iterations undoubtedly emerge. USD 19.11, which saw the Hydra API improved with initial support for offline rendering, is likely the best foundation version for any studio starting to experiment with USD.
The ability to mitigate this issue depends on the tools in question. Foundry’s lighting tool Katana delivers a USD workflow via a set of customizable plugins, offering studios more flexibility and breathing space in the face of new USD iterations. A studio can use a separate version of USD for I/O operations from the core USD that Katana uses for scene graph processing in the viewer. Nuke and Mari are also being tested with studio customizable USD plugins for release at a future date.
So—what now?
The bottom line is: studios need to be discerning when thinking of adopting USD into their proprietary pipeline. If done smartly and correctly, a USD pipeline unlocks unbridled potential for the flexibility and efficiency of artist workflows, across teams, studios, and beyond.
With the current state of USD deployment in commercial software, a company must decide how much of their own developer time they are willing to commit to backfill gaps in support for digital content creation applications. As part of this, pertinent questions to ask include: Does a studio have the time and perspective to design, test, and build optimized USD workflows while production best practices are less known? Does a studio have the infrastructure and pipeline setup to manage the increased complexity brought by the layered file approach of USD?
We hope that this article gives studios a better understanding of the investment and thought that will be required to move into a USD pipeline. At the same time, we want to encourage everyone to spend some time and effort thinking about it, and any feedback gained from this process is invaluable to vendors like us. After all, we’re all a part of what will likely be the largest vendor and community driven project in the history of VFX and animation software.