isaac sim仿真代码webrtc

作者:iohannes 发布时间: 2025-09-22 阅读量:16
from isaacsim import SimulationApp

CONFIG = {
    "width": 1280,
    "height": 720,
    "window_width": 1920,
    "window_height": 1080,
    "headless": True,
    "hide_ui": False,  # Show the GUI
    "renderer": "RaytracedLighting",
    "display_options": 3286,  # Set display options to show default grid
}

kit = SimulationApp(launch_config=CONFIG)

def on_physics_step(step_size) -> None:
    pass

def init(kit):
    from isaacsim.core.utils.extensions import enable_extension
    from isaacsim.core.api import World
    from isaacsim.core.api.objects import DynamicCuboid, VisualCuboid
    import numpy as np

    kit.set_setting("/app/window/drawMouse", True)
    enable_extension("omni.services.livestream.nvcf")

    world = World(stage_units_in_meters=1.0, physics_dt=1/50, rendering_dt=1/50)
    world._physics_context.set_gravity(-10)
    world.scene.add_default_ground_plane()
    world.add_physics_callback("physics_step", callback_fn=on_physics_step)

    cube_1 = world.scene.add(
        DynamicCuboid(
            prim_path="/new_cube_2",
            name="cube_1",
            position=np.array([0, 0, 1.0]),
            scale=np.array([0.6, 0.5, 0.2]),
            size=1.0,
            color=np.array([255, 0, 0]),
        )
    )
    return world


def run(kit, world):
    world.reset()
    index = 0
    while kit._app.is_running() and not kit.is_exiting():
        if index %10 ==0:
            world.step(render=True)
        index +=1
    kit.close()


if __name__ == '__main__':
    world = init(kit)
    run(kit, world)