Simulator pauses simulating?

Hi,

Notice in the screen recording that the object doesn’t move any more until I click on it. I have to manually click on the object → geometry → looks for the object to be fully simulated.

How is this possible? Why is this happening? How can I avoid this so I don’t need to click on the object?

Here is the script and attached is the corresponding USD file. I noticed the same behavior when running the simulation on CPU & using numpy as backend, as well as with other objects
usd_object.zip (75.9 KB)

import argparse
from omni.isaac.lab.app import AppLauncher

parser = argparse.ArgumentParser(description="Test")
AppLauncher.add_app_launcher_args(parser)
args_cli = parser.parse_args()
app_launcher = AppLauncher(headless=False, hide_ui=True, width=640, height=480)
simulation_app = app_launcher.app

import numpy as np
import torch
import os
import random
from omni.isaac.core import SimulationContext
from omni.isaac.core.prims import RigidPrim, GeometryPrim
from omni.isaac.core.utils import prims
from omni.isaac.core.world import World
from omni.isaac.core.objects import FixedCuboid

device='cuda'
backend='torch'

simulation_context = SimulationContext(device=device, backend=backend)
simulation_context.get_physics_context().enable_gpu_dynamics(True)

if World.instance():
    World.instance().clear_instance()

world=World(device=device, backend=backend)
world.scene.add_default_ground_plane()

base_dir = os.getcwd()
usd_file = os.path.join(base_dir,'usd_object','usd','nontextured_proc.usd')
object_name = '/my_object'
obj_prim = prims.create_prim(usd_path=usd_file, prim_path=object_name)
rigid_prim = RigidPrim(prim_path=str(obj_prim.GetPrimPath()), name=object_name, mass=0.5,position=(0,0,1))
geometry_prim = GeometryPrim(prim_path=str(obj_prim.GetPrimPath()), name=object_name, collision=True)
geometry_prim.set_collision_approximation("convexDecomposition")
geometry_prim.set_contact_offset(1e-5)
geometry_prim.set_rest_offset(0)#1e-3)
rigid_prim.enable_rigid_body_physics()
world.scene.add(rigid_prim)

cuboid = FixedCuboid(prim_path='/table',name='/table',scale=torch.tensor([10,10,0.4]).to('cuda'), color=np.array([255, 0, 0]))
world.scene.add(cuboid)

print('initializing physics...''')
simulation_context.initialize_physics()
rigid_prim.initialize()
simulation_context.play()
world.reset()
print("world reset")

print('stepping..')
i = 0
simulation_context.set_block_on_render(True)
while simulation_app.is_running():
    simulation_context.step(render=True)
    # this changes after clicking the 'visual'
    print(rigid_prim.get_local_pose())
    i += 1
    if i % 100 == 0:
        print('stepping..')