Reviewing Asset Metadata and Structure#

With our environment set up and an introduction to why OpenUSD is critical for efficient, flexible scene assembly in Omniverse, let’s get started by exploring, organizing, and working with our ready-made digital factory assets. By following best practices in project setup and asset management, we’re prepared to build a scalable, modular digital twin scene that’s easy to navigate and optimize as our needs evolve.

Machines, Props, and Factory Shells#

When working with pre-built USD assets in Omniverse and OpenUSD, understanding asset metadata is key to effective scene management and downstream automation. Let’s use the “N_05_Assembly” machine asset as a practical example.
Our digital twin project uses modular USD assets for machines, props, and factory shells. This modularity allows us to assemble flexible production lines and environments, adapting to evolving needs.

Exploring Asset Metadata

  1. Navigate to Assets > Machine_USD > N_05_Assembly

  2. Open N_05_Assembly.usd

../_images/image30.png

With the asset prim selected, the Property panel at the right reveals multiple metadata fields.

Two important built-in metadata fields you’ll see are

  • Name The identifier for the prim in the scene graph.

Here, a name starting with “5” indicates this machine represents the 5th cell in the sequence for this specific assembly line.

  • Kind For this asset, you’ll see Kind set to assembly.

../_images/image38.png

What is “Kind” in OpenUSD?#

The kind attribute is a standard USD metadata keyword used to specify the functional role of a prim within a hierarchy. It helps tools and pipelines interpret how to use different parts of a scene, whether a prim is a component (like a robot, conveyor, or small prop), an assembly (representing a group of components, such as an entire production cell), or other logical groupings.

  • Example Kinds

    • Component An individual machine, robot, or transport that can be reused and moved.

    • Assembly A collection or grouping of components, such as a full assembly line or workstation.


Why does it matter?#

Setting the correct kind allows downstream scripts or applications to:

  • Identify and group related assets.

  • Run validation and optimizations correctly (e.g., treat “assembly” prims as logical aggregates).

  • Improve project maintainability and scalability.

Adding a Custom Attribute Unique_ID

You can further customize asset metadata by adding custom attributes. Let’s add a custom integer attribute called Unique_ID.

  1. In the Properties panel, click Add > Attribute.

../_images/image74.png
../_images/image16.png
  1. Name it Unique_ID.

  2. Set the Type to int.

  3. Select Add.

  4. Scroll down in the Properties panel to find the new Unique_ID attribute.

  5. Choose a value that is unique for this prim (e.g., 105001).

../_images/image61.jpg

Why add an Attribute like Unique_ID?#

A Unique_ID can help with:

  • Automated tracking or searching in large scenes.

  • Linking digital twins with real-world inventory or PLM systems.

  • Making referencing and scripting more robust.

Note

When you add a custom attribute directly on a prim, it exists only for that prim instance, not for all assets or prims globally. To define and enforce global or project-wide attributes (“schema definitions”), you can use USD schemas or more advanced approaches, see the Learn OpenUSD learning path for a deeper dive.