Skip to main content

Python package for visualizing OpenUSD based simulations (like NVIDIA Isaac Sim) with Rerun.io

Project description

Rerun.io logger for USD and NVIDIA Omniverse apps

Documentation PyPI

:construction: This is a development preview. Expect breaking changes before 1.0.0 :construction:

Contents

Install

  1. You can install usd-rerun-logger from PyPI:
pip install usd-rerun-logger
  1. Install OpenUSD (pxr). This is a user-managed dependency to avoid version conflicts (e.g. with isaac-sim which bundles its own version).
    • If you use an Omniverse app like Isaac Sim or Isaac Lab: You can skip this step.
    • Otherwise, install the standard library from PyPI:
      pip install usd-core
      

Log generic USD Scenes

This utility can traverse any standard USD scene and log transforms, geometries and color textures to Rerun.io.

API reference

executable examples

This is the lowest level logger. See IsaacLabRerunLogger or the LogRerun wrapper for higher level APIs

To log a simple scene:

from pxr import Usd
from usd_rerun_logger import UsdRerunLogger

# Init Rerun.io
rr.init("orange_example", spawn=True)
# Create the USD Stage
stage = Usd.Stage.Open("orange.usd")
# Log the stage
logger = UsdRerunLogger(stage)
logger.log_stage()

Log Isaac Sim scenes

from usd_rerun_logger import UsdRerunLogger

rr.init("IsaacSim", spawn=True)
logger = UsdRerunLogger(world.stage, path_filter=["!*BlackGrid*"])

while app_running:
    world.step()
    # Set the simulation time on the timeline (see the full examples)
    rr.set_time(timeline="sim", duration=sim_time)
    logger.log_stage()

Log Isaac Lab InteractiveScenes

To make training faster, Isaac Lab doesn't update the USD Stage and the latest transforms are only available through the InteractiveScene API. The IsaacLabRerunLogger will merge the 3D objects and initial poses from the USD stage with the transforms parsed from the InteractiveScene.

API reference

from usd_rerun_logger import IsaacLabRerunLogger

rr.init("IsaacLab", spawn=True)
logger = IsaacLabRerunLogger(env.scene)
while looping:
    env.step(action)
    rr.set_time(timeline="sim_steps", sequence=env.common_step_counter)
    logger.log_scene()

Log Gymnasium environments

LogRerun is a drop-in replacement for Gymnasium's RecordVideo wrapper. Using Rerun.io instead of recording videos has multiple benefits, like no need to worry about camera angles, and file size doesn't increase linearly with the length of the run.

API reference

from usd_rerun_logger import LogRerun

env = gym.make("Isaac-Reach-Franka-v0", cfg=FrankaReachEnvCfg())
rr.init("franka_example", spawn=True)
env = LogRerun(env)
env.reset()
for _ in range(100):
    action_np = env.action_space.sample()
    action = torch.as_tensor(action_np)
    env.step(action)

Known limitations

  • Not all shaders are supported. In OpenUSD, color textures can be represented in a wide variety of ways, many of them specific to certain implementations. We try to support as many shader formats as possible. Please open an issue when you have a .usd* file that we fail to parse properly.

Also, see the issues for features we're still working on.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

usd_rerun_logger-0.4.0.tar.gz (14.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

usd_rerun_logger-0.4.0-py3-none-any.whl (19.6 kB view details)

Uploaded Python 3

File details

Details for the file usd_rerun_logger-0.4.0.tar.gz.

File metadata

  • Download URL: usd_rerun_logger-0.4.0.tar.gz
  • Upload date:
  • Size: 14.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.7

File hashes

Hashes for usd_rerun_logger-0.4.0.tar.gz
Algorithm Hash digest
SHA256 a28ec61b92baa8c2fdd2ba39a4e88ea3d166a16b9183782b6c1d7aa9a2850013
MD5 8c7d1419a130de3d72d5cc31086c4278
BLAKE2b-256 45c68e0f703609baa9ee8ac8575611135189c71ec97d17d56c49c373fd058389

See more details on using hashes here.

File details

Details for the file usd_rerun_logger-0.4.0-py3-none-any.whl.

File metadata

File hashes

Hashes for usd_rerun_logger-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4b95d80b47938e98d356ca805ffb4d3a270535df68f653bf11e18a839a30aba0
MD5 bea2ae5eeda9dbe47bfaaabde85bce8f
BLAKE2b-256 6e8035a71f3149794ff4af07bf7a9157102b76cce372bbcee23596a9f6028364

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page