Behavior script does not execute when USD is loaded in SimulationApp

I have a USD scene with some prims that have python scripting behaviors attached to them. When loading the USD to stage using simulation, non the behavior scripts execute, even though the extension is set to be enabled in the standalone simulation, and I can select the prims and I can see that they have the behavior scripts attached to them after they are added into the stage, it’s just that on play and update events seem not to be hooked to the stage events as expected.

from omni.isaac.kit import SimulationApp
simulation_app = SimulationApp({"headless": False})

from omni.isaac.core.utils.extensions import enable_extension
enable_extension("omni.kit.scripting")

# some scene with prims with python scripting
usd_path = "C:/Workbench/IsaacWorkspace/isaac-workspace/test_scene.usd"
prim_path = "/World"

stage_utils.add_reference_to_stage(usd_path, prim_path)

world = World()
world.scene.add_default_ground_plane()

for i in range(50000):
    world.step(render=True)

Ok the issue seems to be fixed when loading the stage differently using omni.usd.get_context().open_stage:

omni.usd.get_context().open_stage(usd_path)

print("Loading stage...")
from omni.isaac.core.utils.stage import is_stage_loading

while is_stage_loading():
    simulation_app.update()

print("Loading Complete")

world = World()

for i in range(50000):
    world.step(render=True)

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.