Houdini Resources

Updated on June 28  2025



Deborah R. Fowler



USD Intro

Posted June 16  2025
Updated on June 16  2025

USD Table of Contents
 


USD Resources

Stage - USD scenegraph (composed view of scene)

Prim

Properties - attributes and relationships

Composition Arc (see below) - brings things into stage
Layer - usually a file
Schema - IsA or API


Example files

In the documentation on SideFX.com, there is a "quick example", however I was not able to use the two_boxes part of it verbatim (perhaps there is a way, however I found a solution that works). Here is what I found works with usda files and hipnc supplied below.

box.usda works great! Here are my versions:

#usda 1.0
def Cube "box"
{
    double size = 0.5
}

#usda 1.0 is a header

This "def" defines a new prim called box. The "attributes" now called properties are defined in the curly brace. Coming from a C++ background, I tend to match my curly braces with each on its own line (personal preference). Within the braces is the prim contents.

def is a specified
Sphere "IsA" schema

The two box example as listed in the docs as of this posting I could not get to read in properly. The syntax I used was

#usda 1.0
def "box1" ( references = @./box.usda@</box> )
{

}
def "box2" ( references = @./box.usda@</box> )
{
    double size = 5.0
}

Click here for zip file of usda files and hip bringing them in

This defines the two boxes by referencing the other usda file where box is defined as a primitive. If you look at the hip file provided with the usda files you will see this can be imported into Solaris with a file node or alternatively into Obj/geo context with a USD import node. Both render perfectly in Karma (ignore the odd looking corners in the Vulcan viewport).

This is a good start to understanding the layering of USD file format. We will delve deeper as we talk about command line rendering. Note that you are more likely to be using usd (or usdc) rather than ascii readable file as binary will be smaller. In addition, you will be generating the usd source from the interface with a usd rop rather than these that were created in notepad++.

In these examples references is the metadata name and the value is the path with target prim
So @./box.usda@ is the reference path and </box> is the target prim.

For more examples see USD and python


Composition Arcs

Take a moment to look at what some of the composition arc possibilities are:

LIVRPS - Local, Inherits, Variants, References, Payloads, Specializes
(Similar to order of operation PEMDAS - parentheses, exponents, multiplication / division, addition / subtraction)