Universal Scene Description is a framework to manage data in CG productions. It was originally developed by Pixar and is used in many big animation and visual effects studios. It allows to manage huge amount of data very efficiently. USD can store geometry, materials, cameras, lights and more in an universal format, which can be exchanged between many modern DCCs. This makes USD a great addition to Prism.

To use Universal Scene Description in Prism you need to install and load the Prism USD plugin. You can install the plugin during the Prism installation setup or at any point later on from the Prism Hub. You can open the Prism Hub from the first page in the Prism Settings dialog.

For a detailed explanation of the USD workflow have a look at this presentation:

USD in Houdini

Prism can be used in multiple places in Houdini to manage USD data.

In SOPs the “Prism ImportFile” node and the “Prism USD Export” node can be used to import and export USD files.

In LOPs these nodes are available: “Prism LOP Import”, “Prism LOP Export”, “Prism LOP Render” and “Prism LOP Mute Departments”.

From the “Prism Presets” menu in the tab menu there are multiple nodegraph presets available to set up a basic structure for the USD workflow in LOPs and SOPs.

USD in Maya

In order to use the Prism USD plugin in Maya you need to have either the Autodesk USD plugin or the Multiverse plugin installed and loaded in Maya.

Autodesk USD plugin

In order to use the Prism USD plugin in Maya 2020 the Autodesk Maya USD plugin has to be installed. From Maya 2022 onwards this plugin is getting installed automatically with Maya and don’t need to be installed manually.

Autodesk Maya USD plugin

Multiverse USD plugin

As an alternative to the Autodesk USD plugin for Maya you can also use Prism with Multiverse. Prism will use the Multiverse plugin automatically for importing and exporting USD files when the Autodesk USD plugin is not loaded. When both plugins are loaded you can choose which plugin will be used by Prism using the “Preferred USD plugin” setting. This setting can be found in the Prism User Settings window under “DCC apps” - “Maya”. This setting is only visible when opening the User Settings inside Maya when both USD plugins are loaded.

USD and ZBrush

Prism supports exporting geometry from ZBrush and using it in the USD container of an asset/shot. The geometry itself will be exported as alembic (.abc) and then referenced into the USD container. The options for that can be found in the Prism Export dialog, when the outputtype is set to .abc. In order to export geometry as .abc ZBrush 2021 or later is required.

ZBrush itself supports exporting and importing geometry in the .usd format. However this functionality is not yet available through scripting, which is why Prism doesn’t support exporting the geometry directly into the .usd format.

USD and other DCCs

More and more DCCs are beginning to support USD. As this continues to evolve, Prism will add support for more DCCs and their USD integrations in the future. In the meantime it is possible to export alembic and obj files from DCCs, which don’t support USD yet. These alembic and obj files can then be referenced by USD files in Prism in order to take advantage of the USD workflow.

Referencing external alembic files into USD files

To use any alembic or obj file in a USD container of an asset or a shot you have to create a department layer first. Go to the “Products” tab in the Prism Project Browser and select and asset or a shot. Rightclick the “Products” list and select “USD” -> “Create department layer”. You can create a layer for any existing departments in your project or choose “Custom…” to create a new department. When the department layer is created you can drag & drop an alembic file into the “Versions” list to copy it into the Prism folder structure. When the version has been created you can rightclick the version an choose “”USD” -> “Set as department layer in USD container”. This will create a new version of the USD container, which references in the select alembic file. The USD container can now be imported into any DCC, which supports USD imports.

It is also possible to create sublayers for department layers from the context menu of the “Products” list to have more control over the composition of the USD container.

Hydra Delegates

A Hydra delegate is a version of a renderer, which can render USD scenes natively and which can be integrated tightly in almost any tool, which supports USD. In Prism Hydra delegates can be used to playblast and render USD scenes and also to view USD files in the USD viewport in the standalone Project Browser. In the “USD” tab of the Prism User Settings the different available Hydra delegates can be enabled/disabled. After the settings for the render delegates are changed a Prism restart is usually required. The following is a list of available Hydra delegates in Prism and how to set them up.

GL (Storm)

The GL renderer is the default Hydra delegate in the Prism USD viewport. It is available out of the box after installing the Prism USD plugin. It supports geometry, basic light and materials and has the fastest refresh times. It looks similar to other viewports in most DCCs.


To use the 3Delight Hydra delegate you need to have 3Delight installed on your computer, which you can download here: During the installation a “DELIGHT” environment variable will be set on your computer, which is required to use 3Delight in Prism.

AMD Readon Pro Render (RPR)

The AMD Readon Pro Render comes included in Prism. No additional setup is required. You can use it for free without any limitations.


To use the Autodesk Arnold Hydra delegate in Prism you need to download the “Arnold SDK”, which you can download for free here: In the “USD” tab of the Prism User Settings the path to the Arnold SDK must be specified. You can use Arnold and it’s Hydra delegate for free, but if no Arnold license was found a watermark will be displayed over your images.


Karma is the Hydra delegate included in SideFX Houdini. You can use Karma in Prism standalone by specifying the path of your Houdini installation in the “USD” tab of the Prism User Settings. Only Houdini versions 19.0 and onwards are supported. The path usually looks like this:

C:/Program Files/Side Effects Software/Houdini 19.0.383

If the Karma Hydra delegate is enabled Prism standalone can read .usdnc files (created by Houdini Apprentice), but the option to read .obj files will be disabled. Also it is not possible to use any other Hydra delegates (except GL) when Karma is enabled.


Creating Custom Solaris Presets

Create new shelf tool

import PrismInit

You cannot run the snippet in the Houdini Python Shell, because it needs to be run in the GUI thread.


The presetname will be visible in the nodegraph tab menu.

The node defines the Houdini nodepath, which will be saved in the preset. All childnodes of the selected node will be saved.

The location defines where the presetfile will be saved on disk. The “User” location is by default at this path: %userprofile%\Documents\Prism2\Presets\Houdini_Nodegraphs The “Project” location is by default at this path inside of your current Prism project folder: 00_Pipeline\Presets\Houdini_Nodegraphs The “USD Plugin” location is at this path inside of the Prism USD plugin folder: Presets\Houdini_Nodegraphs This is the location where the default nodegraph presets are stored. Saving custom presets in this location is not recommended because they will be deleted if the Prism USD plugin gets updated in the future.

Prism will load presets from these 3 locations automatically. If you move a preset file to a different location you need to manage the registration of the preset yourself.

Running Custom Python Code when a preset is loaded

class Prism_MyPlugin_Functions(object):
    def __init__(self, core, plugin):
        self.core = core
        self.plugin = plugin
        self.core.registerCallback("pluginLoaded", self.onPluginLoaded, plugin=self.plugin)

    def onPluginLoaded(self, plugin):
        if plugin.pluginName == "USD":
            plugin.api.postPresetLoadHandlers["My Custom Preset"] = self.onPresetLoaded

    def onPresetLoaded(self, presetName=None, kwargs=None):
        self.core.popup("Preset %s" presetName)


QuiltiX is an open source MaterialX editor, which can be used to create and edit materials for USD assets. A free download is available here: here.


Prism and QuiltiX can be used together for powerful material authoring workflows.

To integrate Prism and QuiltiX the QuiltiX root folder must be set in the Prism User Settings -> USD tab.

The Prism-QuiltiX integration can be found in a few places:

In Prism:

  • If you have the “Texture Library” plugin installed you can rightclick any .mtlx files in the libraries and select “Open in QuiltiX…” from the context menu. This is especially useful when you have the “GPU Open” material library enabled in your project settings, which allows you to download free MaterialX files.

  • In the Prism Usd Editor you can rightclick any MaterialX layers in your Usd layerstack and select “Edit in QuiltiX…” to open the MaterialX file in QuiltiX and also load the Usd stage including geometry into the QuiltiX viewport.

In QuiltiX:

If you opened QuiltiX from within Prism using the options mentioned above, there are a few additional features available in QuiltiX:

  • The scenegraph and the viewport widget are replaced with the Prism scenegraph/viewport widgets. This allows you to modify the scenegraph hirarchy and use additional controls in the viewport. The viewport toolbar can be opened using the shortcut “x”.

  • A new Prism menu in the QuiltiX menu bar allows you to save you material as a new version. This requires that the .mtlx file is saved as a product in your Prism project. You can rightclick a .mtlx file layer in the Prism Usd Editor and select “Copy material to entity context” to save a material from a custom location as a product in Prism.

  • In the “View” menu you can find a new “Libraries” option, which integrates the Prism libraries into QuiltiX. From here you can drag&drop HDRIs, textures and materials from your library into QuiltiX. You can also save your material into a library by rightclicking in an empty area of any of your libraries and select “Save current nodegraph…”.