How to load USD without Replicator?

How can i load a USD file without Replicator? I know I can use:

import omni.replicator.core as rep


The problem is that Replicator changes all the paths of all the prims in the scene. I want to load my USD file but I want that all the paths I see in the GUI are the same when I load the file from python.

Hi Federico. I think that replicator function probably adds the USD layer as a reference and you maybe want to open your USD file as a stage. If that’s the case, we have an example of how to do that here:

And there’s more information about the omni.usd API here: Overview — omni.usd 1.9.0 documentation

If I run this code following the example you mentioned:

from omni.isaac.kit import SimulationApp

simulation_app = SimulationApp(
    launch_config={"renderer": "RayTracedLighting", "headless": True}

import omni.usd
from omni.kit.usd_docs import variant_example_usd_scene

usd_context = omni.usd.get_context()

result = omni.usd.get_context().open_stage(variant_example_usd_scene)
stage = omni.usd.get_context().get_stage()

print(f"opened stage {stage} with result {result}")

I get this error:

Traceback (most recent call last):
  File "", line 9, in <module>
    from omni.kit.usd_docs import variant_example_usd_scene
ModuleNotFoundError: No module named 'omni.kit.usd_docs'
2023-05-08 07:30:42 [9,398ms] [Warning] [] 1 contexts were leaked
/home/federico/.local/share/ov/pkg/isaac_sim-2022.2.1/ line 41: 3999991 Segmentation fault      (core dumped) $python_exe "$@" $args
There was an error running python

Looks like you’re on the right track, but you should not import omni.kit.usd_docs. Remove this like entirely:

from omni.kit.usd_docs import variant_example_usd_scene

You should give open_stage() a filepath to the USD file you want to open.

result = omni.usd.get_context().open_stage("C:/the/path/to/my_stage.usd")