Introductory

Isaac Sim Working with USD

Learning Objectives

Save USD stages
Load and reference existing USD stages
Organize stage tree hierarchy

Saving Options

Save:
Go to the Menu Bar
Click Files > Save or Files > Save As .. to save as a new file
Save Flattened As:
Saves the current USD file while merging all components to one mesh
as .usda files:
Option to save as .usda file instead of .usd file
.usda file: human-readable text file format for the given USD stage
Collect Assets:
If many reference USD stages, materials and textures from other folders and servers were used in the current stage
Collect Assets is mandatory to make sure all the external references that are used in your stage gets collected in one folder

Process
Save the current USD locally > Find it in the Content tab > Right-click on it and select Collect Asset
WorkingWithUSD2

Loading Options

-Open: Load a USD stage
Go to Menu Bar
Click Files > Open
This opens the USD stage, and you can directly edit it
-Add Reference: Adds a USD file as a reference
Click Files > Add Reference
You will not be able to edit the referenced USD

This can also be done by finding the file in the Content Tab and dragging it into the viewport
Set Stage for Reference
Demonstrate adding a file as reference
Save the current stage with the simple cube and cylinders as a mock robot
Process
(1)Rearrange the rigid bodies on stage into a hierarchial structure with meaningful names & Put all the rigid body parts to the robot under a single Prim
(1)-1 Right click inside the Stage tab, select Create > Xform. Rename the newly added Xform to mock_robot (Prim should appear under the World prim)
WorkingWithUSD3
(1)-2 Move the Cube, both Cylinders, Physics Material, and Looks folder under mock_robot by drag and drop
WorkingWithUSD5
(1)-3 Rename the Cube and Cylinders to the body, wheel_left, and wheel_right
(1)-4 Save the stage as an USD file
(2)Open a new stage
(2)-1 Files > Add Reference or drag the file from Content on to the stage
WorkingWithUSD8
Load the USD file as a reference
Load the referenced USD under a Prim named the same as the USD filename
Loaded everything under the original World(defaultPrim), including PhysicsScene, defaultLight, and GroundPlane
-May not be great if you are loading multiple USD references, and they all have their own version of PhysicsScenes and defaultLights
-Cannot delete them on the new stage because they are loaded by reference
-Delete them in the original USD would make it difficult to work within those USD stages
(3)Both have the necessary environment set up in the USD stages but not export them when they are being referenced
(3)-1 Move non-referenced items out of the default Prim
(3)-2 Unparenting
Select the robot’s parent prim on stage(in this case /mock_robot)
Open the menu Edit while the prim is selected, and click on unparent
Instead of being under World, mock_robot is parallel to World
Error:
WorkingWithUSD9
Solution:
https://forums.developer.nvidia.com/t/encountering-an-issue-with-usd-tutorial-unparenting-error/278964
Turns out I’ve kind of ignored this phrase: (Another OV user helped me out)
You cannot delete them on the new stage because they are loaded by reference
What is referenced cannot be edited, so it wasn’t a surprise that unparenting was impossible
Opening up the file and unparenting mock_robot again solved the error
WorkingWithUSD10
(3)-4 Right-click on the robot prim again on stage, and Set as a Default Prim
WorkingWithUSD11
(3)-4 Save
WorkingWithUSD12
(3)-5 Open a new stage and load the same file again as a reference, only the robot will be imported
WorkingWithUSD13

Summary

Learned how to save and open USD files

Files

https://drive.google.com/drive/folders/17bDD_rxmnjZbV-DFccysfuIIqC2uiSJD?usp=sharing