# Scene Optimization and Data Integration

Welcome to **Scene Optimization and Data Integration**. This course walks through techniques for optimizing digital twin performance and integrating scene data with facility management systems.

With your production line assembled, you’ll now learn to scale your digital twin to facility-level complexity while maintaining interactive performance. This course covers critical optimization techniques including instancing for managing repetitive objects, adding environmental context and props, and programmatically extracting facility data for integration with operational systems.

Working with your assembled production line, you’ll add factory environment elements, implement performance best practices, write Python scripts to traverse USD stages and export asset inventories, and create navigation systems for scene exploration.

By the end of this course, you’ll have a complete, optimized digital twin scene that can serve as both a visualization tool and a data source for facility operations, maintenance planning, and strategic decision-making.

## Learning Objectives

1. **Implement USD instancing techniques** to optimize performance for scenes with repetitive elements.
2. **Integrate environmental props and context** to create complete facility representations.
3. **Write Python scripts for USD stage traversal** to programmatically query and export scene data.
4. **Generate CSV asset inventories** for integration with facility management and maintenance systems.
5. **Create navigation systems** using waypoints for effective scene exploration.

## Turn the Line Into a Usable Factory Scene

Extend the line into a factory scene, reuse repeated props, export tagged records and define camera viewpoints. CSV is a separate output; the scene continues into navigation.

**Place the line and props**

**Organize and instance props**

**Export matching attributes**

**Add navigation waypoints.**

![The same factory line gains props, shared prop instances, an inventory output and camera viewpoints.](optimization-data/images/module-overview.png)

---

Before we jump in, let’s review a few best practices for your digital twin.

While we have already covered a few of these core topics, let’s review them in the context of Props.

## **Best Practices for Adding Props**

There are a lot of these topics walked through in the [Learn OpenUSD](https://www.nvidia.com/en-us/learn/learning-path/openusd/) learning path.

Just as we did with machine assets, always reference prop USD files rather than copying them. This maintains efficiency, enables easy updates across multiple scenes, and keeps file sizes manageable. Multiple instances of the same prop (like identical pallets or safety barriers) should reference the same source file.

Structure your props logically within the scene hierarchy. Group related elements together (e.g., safety equipment, material handling props, or maintenance tools) and organize them by functional zones within the factory layout. This organization makes scene management much easier as complexity grows.

Ensure all props maintain consistent units with your production line assets. As we established in previous modules, maintaining consistent scale prevents alignment issues and ensures accurate spatial relationships throughout your digital twin.

While props add realism, they also increase scene complexity. Use instancing for repeated elements, apply appropriate levels of detail for props that will be viewed from a distance, and consider using simplified geometry for elements that serve primarily as visual context rather than functional analysis.

Organize props so they can be easily rearranged, replaced, or removed as manufacturing requirements change. This modularity ensures your digital twin can adapt to evolving facility layouts without requiring complete reconstruction.

## **Opening the Factory Environment**

Let’s start by setting up our factory shell as the foundation for our digital twin scene:

1. Navigate to **Factory > Factory.usd** in the Content Browser
2. Open the file
   * Lights are already set up in this scene, so we do not need to go to the Grey Studio lighting as we’ve previously done.

![Empty factory interior with marked production bays, stairs and mezzanine walkways.](optimization-data/images/image31.png)

## **Creating Organized Layers for Asset Groups**

To maintain a clean, collaborative workflow, we’ll create dedicated layers for different types of factory content. This approach allows team members to work on different aspects simultaneously while keeping the scene organized.

**Create a Props Layer**

1. In the Layers panel, click **Create Sublayer**
2. Name the sublayer **FactoryProps.usd**
3. Save it in the same directory as **Factory.usd**
4. Double-click on **FactoryProps.usd** to set it as the active authoring layer

**Create a Production Lines Layer**

1. Create a third sublayer named **ProductionLines.usd**

![Layers panel containing ProductionLines.usd and FactoryProps.usd, with FactoryProps.usd selected as the authoring layer.](optimization-data/images/image57.png)

This layer will reference the production line assemblies we created in Module 4.

#### NOTE
In this example, we’ve placed the assets in the sections provided, but use your build assemblies as needed.

![Different Delta production-line assemblies placed in marked factory bays.](optimization-data/images/image11.png)

---

## **Integrating NVIDIA Asset Browser Content**

The NVIDIA Asset Browser provides a wealth of factory-appropriate props and equipment that can enhance the realism and functionality of our digital twin.

**Accessing the NVIDIA Asset Browser**

1. Navigate to **Window > Extensions**.
2. In the search box, type “**NVIDIA Asset Browser**” or “omni.kit.browser_asset”.
3. **Install and enable** the extension if not already active

#### NOTE
Keep the Asset Browser enabled only when needed to reduce startup overhead in large projects.

![Extensions window showing the Asset Browser extension and its Install control.](optimization-data/images/image8.png)

**Selecting Factory-Appropriate Assets**

1. Open the **NVIDIA Assets** tab from the **Window > Browsers > NVIDIA Assets**
2. Browse relevant categories: Industrial, Manufacturing, Warehouse.

![NVIDIA Assets browser with Shipping selected and pallet and box thumbnails displayed.](optimization-data/images/image20.png)

**Choose practical props that add context to your factory scene:**

* Pallets and shipping containers
  * Forklifts and material handling equipment
  * Safety barriers and signage
  * Storage racks and shelving

1. Drag an asset from the NVIDIA Assets tab into the **viewport** or **Stage Tab** to place.

![Instrument cart selected on the factory floor after placement from the NVIDIA Assets browser.](optimization-data/images/image24.png)

#### NOTE
Dropping assets directly from the NVIDIA Assets tab references cloud-hosted content. This is suitable for exploration but not for production scenes or team workflows.

With the asset selected, check the **Property panel > Payload/References > Asset Path** to see it points to a cloud location.

![Selected prop's Payloads section showing a cloud-hosted Asset Path and its loading checkbox.](optimization-data/images/image25.jpg)

### Bring a Cloud Prop Into the Local Project

Collect the prop and its dependencies, then replace or repoint the placed cloud reference to the collected USD in `FactoryProps.usd`. Verify that the reference and dependencies resolve locally; Collect alone does not update the placed reference.

**Choose a prop**

**Collect dependencies**

**Reference the local USD**

**Check asset paths.**

![A cloud prop is collected with its dependencies, referenced from a local factory layer, and checked for local asset paths.](optimization-data/images/local-prop-workflow.png)
1. Right-click the asset in the **NVIDIA Assets** Browser and choose **Collect**

![Instrument cart context menu in NVIDIA Assets with Collect available.](optimization-data/images/image60.png)
1. Choose a target within the project, such as:
   * Assets/Props/WorkingLibrary for review and curation, or
   * Assets/Props for approved, production-ready props.

![Content Browser showing Machine_USD, Material and Props folders.](optimization-data/images/image44.png)

#### WARNING
The collect action often creates a nested folder structure (materials, textures, thumbnails). Move or rename folders to match your project conventions while keeping relative paths intact.

Maintain a clean destination such as:

* Assets/Props/Pallets/
* Assets/Props/MaterialHandling/
* Assets/Props/Safety/
* Assets/Props/Storage/

This is going to download a local copy that can be added to an accessible library. We can then reference this prop in our scenes as needed.

With the FactoryProps.usd set as the Authoring Layer, the newly added prims are being added directly to that layer.

![InstrumentCart_A02_01 listed under FactoryProps.usd, the active authoring layer.](optimization-data/images/image15.png)

#### TIP
Use consistent, descriptive names for collected USDs (for example, prop_pallet_closeddeck_A01.usd) to improve search and automation.
