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
:construction: This is a development preview. Expect breaking changes before 1.0.0 :construction:
Contents
- Install
- Log generic USD Scenes
- Log Isaac Sim scenes
- Log Isaac Lab InteractiveScenes
- Wrap Gymnasium environments
Install
- You can install usd-rerun-logger from PyPI:
pip install usd-rerun-logger
- Install OpenUSD (
pxr). This is a user-managed dependency to avoid version conflicts (e.g. withisaac-simwhich 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.
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.
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.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a28ec61b92baa8c2fdd2ba39a4e88ea3d166a16b9183782b6c1d7aa9a2850013
|
|
| MD5 |
8c7d1419a130de3d72d5cc31086c4278
|
|
| BLAKE2b-256 |
45c68e0f703609baa9ee8ac8575611135189c71ec97d17d56c49c373fd058389
|
File details
Details for the file usd_rerun_logger-0.4.0-py3-none-any.whl.
File metadata
- Download URL: usd_rerun_logger-0.4.0-py3-none-any.whl
- Upload date:
- Size: 19.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4b95d80b47938e98d356ca805ffb4d3a270535df68f653bf11e18a839a30aba0
|
|
| MD5 |
bea2ae5eeda9dbe47bfaaabde85bce8f
|
|
| BLAKE2b-256 |
6e8035a71f3149794ff4af07bf7a9157102b76cce372bbcee23596a9f6028364
|