MaterialX and USD: The Rise of the Open Source Revolution

Marina Stanisheva
Connecter
Published in
6 min readMar 14, 2024

--

The aspiration for a universal and functional standard within the CG industry leaped forward with the introduction of the PBR concept. Though its workflows and materials fell short of fully realizing this vision, it served as a catalyst for substantial developments.

One of them was MaterialX. Today, this open-source standard offers a way to finally have digital assets look consistently across renderers and platforms. It has the potential to address the shortcomings of previous attempts and lead to further innovations.

But let’s first see what brought it forward.

MaterialX: Origins

The Marvel Cinematic Universe has profoundly impacted the entertainment industry and popular culture since the release of “Iron Man” in 2008. It has not only redefined the superhero genre but the shiny, all-powerful suit of Tony Stark, was also (partially) behind the concept of MaterialX.

Video from Iron Man (2008)

More specifically, in 2007, during the production of the movie, ILM CG Supervisor Doug Smythe was struggling to make the collaboration between the VFX studios involved in the process, each with its own proprietary shaders and asset texturing workflow, more efficient.

The problem was that there was no way to share an asset running in a specific renderer and have it work in a different package, even within the same company. It became even more challenging if it had to go to a third party. Smythe used to write Python scripts to decode ILM’s texture assignments on the geometry so that other studios could match their work, thinking there should be a better way to get that done.

It came a few years later, in 2012 when Jack Greasley of Foundry proposed a GraphML-based specification for connecting shading nodes. It lacked texturing or geometry material assignments but inspired Smythe to outline a network-based shader look to create reusable shader definitions with different parameters. The theoretical open standard was proposed and called MaterialX, but due to the lack of the required coding resources, it had a pin put on it for a bit.

Not long after, in 2013, Lucasfilm started the Unified Assets Initiative to define new standards for generating assets so they could be used across multiple projects and in different formats. Alembic was used for unified geometry, OpenColorIO (OCIO) for color spaces, and OpenEXR for textures, but there was no alternative for material graphs.

In Connecter, you can interactively preview Alembic assets directly in the Asset View.

That’s where Smythe’s work on MaterialX came to shine, much like Stark’s arc reactor. It provided a standardized framework for defining material networks to allow for the creation, manipulation, and exchange of materials across different media and platforms. In other words, MaterialX offered a unified way to represent complex material properties and relationships, ensuring consistency and compatibility throughout the production pipeline, enabling integration and interoperability between different software tools and workflows.

So, Lucasfilm started developing the code needed to make it work. The first internal MaterialX test was in the production of “Star Wars: Episode VII — The Force Awakens” in 2015. It brought the realization that external assistance would be necessary to express the material library artists create for Star Wars’ assets, or any material library in general, consistently and sustainably, across different applications. Namely, MaterialX would need to become an open project to not only speed up its development but also kickstart its adoption. Being open-sourced also meant that it won’t be restricted to one company — users won’t have to buy or subscribe for a specific software to use it.

Image from Star Wars: The Force Awakens Gallery

The MaterialX (Also) Awakens

While C3P0 was having its model’s material presets captured as MaterialX files, Autodesk was working on its own project to solve the problem of portable materials — Abstract Material Graph (AMG). The company wanted to find a way to describe materials in an agnostic, abstract way without implementation details so they could be transported to different architectures without compromising quality, but it couldn’t quite hack it.

That’s why, in 2016, Lucasfilm and Autodesk decided to join forces and align their projects. Niklas Harrysson, principal engineer at Autodesk, suggested breaking the information down into blocks, connecting them to describe the shading graph, and generating code to output OSL or GLSL. As that translated into a way to describe how textures connect to the shader, but also the shading mechanism, it was quickly merged into MaterialX.

Following that, Material was open-sourced with its entire codebase in 2017. Autodesk focused on figuring out how to generate shaders for different applications and architectures from the MaterialX file. They did that by code generation that was open-sourced and merged into MaterialX in 2019.

In the meantime, developments were happening in Pixar, too. They’ve created a new standard for scene description, originally called LSD (Layered Scene Description), but decided to miss out on this naming opportunity and change it to USD, where the “U” stands for “Universal.”

“This production test from Toy Story 4, with its millions of models, textures, lights and colors — is made possible through the power of Pixar’s Universal Scene Description architecture.” Copyright: © Disney•Pixar

It was always intended to be open-sourced, so when, in 2018, they saw that MaterialX was going towards 3d pattern generation, a collaboration began to add MaterialX pattern generation graphs within USD. The idea was that the relationship between MaterialX and USD could help its widespread adoption.

The teams behind MaterialX and USD worked together to ensure the differences between the two standards and to make the overlap functional so they could be used interchangeably and with a smooth translation. All was going great, and 2021 brought more updates. Users could now build a MaterialX code base in the USD distribution so that the MaterialX standards can be encoded into USD files.

MaterialX: Endgame

The further development of MaterialX was supported by the Academy Software Foundation, turning it into a community project where others, besides Lucasfilm and Autodesk, like SideFX, Isotropix, Khronos Group, Epic Games, and NVIDIA, can collaborate. The new partnerships gave way to more and more innovations, like the MaterialX Graph Editor that allows users to create and edit MaterialX content as a visual network.

Here, in Connecter, we see USD and MaterialX making their way to industry standards and support their effort in our application. Users can interactively preview USD files directly in Connecter’s Asset View, as well as play animations. We’re also working on a MaterialX Node Editor that will come in one of the following updates.

A sneak peek into Connecter’s MaterialX Node Editor.

MaterialX has the potential to further streamline and enhance content creation pipelines and map out a luminous way for innovation and standardization in the CG field. As the format continues to evolve, it’s likely to continue offering improved capabilities for material authoring, manipulation, and exchange.

So, how ready are you to implement MaterialX into your workflows? Let us know in the comments below.

If you’re looking for a way to take control of your digital assets, our DAM might be a good fit for your needs. Contact our support team to find out more about its organizational and collaboration features.

Disclaimer: Some of the images in the article are generated by DALL-E.

--

--