Package demos and examples behind the Isaac Lab CLI - #7944
Merged
Merged
Conversation
Contributor
|
run-ci |
Contributor
|
run-ci |
Contributor
|
run-ci |
Contributor
|
run-ci |
maxkra15
marked this pull request as ready for review
September 23, 2026 07:47
maxkra15
requested review from
AntoineRichard,
fatimaanes,
hujc7,
kellyguo11,
myurasov-nv,
ooctipus and
pbarejko
as code owners
September 23, 2026 07:47
maxkra15
force-pushed
the
feat/package-demos
branch
from
September 23, 2026 13:48
ee029ab to
8321c57
Compare
Contributor
|
run-ci |
Make the H1 locomotion demo Newton-first: launch through launch_simulation with the Newton GL viewer by default, drive robots with viewer keys (N/I/J/K/L/C), group robots in one view, and keep the task's tuned physics preset instead of letting --physics replace it with bare solver defaults, which made the policy fall on every step and overflowed heightfield contacts. Remove the launcher's reach into lower layers. SimulationContext gains class-level reset callbacks, NewtonGLVisualizer gains register_ui_callback and request_close, and run_program owns a ProgramBrowser and closes the loading screen from its own reset callback. SimulationContext no longer imports the loading screen and the Newton viewer no longer imports the program browser. Rename _programs and _program_browser to programs and program_browser, stage packaged examples as isaaclab/examples, and drop the unneeded __init__.py that the wheel stager created for them.
Collaborator
Author
|
run-ci |
Packaged programs only run inference, so run_program now disables Warp backward code generation before any kernel module is imported. This also gives program kernels the same cache keys as the test suites, which already disable it, so the standalone demo jobs can restore the shared Warp kernel cache instead of compiling every kernel from scratch on each run.
Every packaged program now accepts --max_steps, and the launch matrix runs each one for a few steps and requires a clean exit, watching for fatal output through shutdown instead of killing it after a fixed soak and ignoring teardown errors. This also launches H1 locomotion, which no longer needs interactive input. Remove tests that restated script sources, argparse choices, or override values, and tests that only exercised mocks, keeping contract, selection, supervision, and launch tests.
Importing ManagerBasedRLEnv loads USD, so doing it at module import made PhysX runs load pxr before Kit and fail with duplicate USD bindings. Select Newton viewers by type instead of importing the visualizer classes for the same reason.
# Conflicts: # examples/bin_packing.py # examples/demos/snowball_smash.py # examples/demos/teapot_fill.py # examples/haply_teleoperation.py # examples/mpm/newton_mpm_granular.py # examples/mpm/newton_mpm_twoway_coupling.py # examples/multi_asset.py # examples/newton_viewer_dominoes.py # examples/sensors/contact_sensor.py # examples/sensors/frame_transformer_sensor.py # examples/sensors/multi_mesh_raycaster_camera.py # examples/sensors/ppisp_camera.py # examples/sensors/tacsl_sensor.py # scripts/demos/sensors/newton_raycast_heightfield.py # scripts/demos/sensors/newton_raycast_moving_geometry.py # scripts/demos/sensors/ppisp_camera_ovrtx.py
Collaborator
Author
|
run-ci |
maxkra15
approved these changes
Sep 24, 2026
Collaborator
Author
|
run-ci |
Contributor
|
Backported to |
isaaclab-bot Bot
pushed a commit
that referenced
this pull request
Sep 24, 2026
# Description Package curated Isaac Lab showcases and focused examples in the released wheel. Run them without a source checkout through `uvx isaaclab demo <name>` and `uvx isaaclab example <name>`. This change: - keeps one repository-level `examples/` tree: six showcases in `examples/demos/`, 24 focused programs in `examples/` and topic folders such as `examples/mpm/` and `examples/sensors/`, and shared data in `examples/assets/`; - adds the Zoo showcase, including `--num_envs` support, while classifying the Newton dominoes scene as an example; - packages that tree privately in the unified wheel and provides stable CLI catalogs with argument forwarding; - reuses the Isaac Lab terminal startup screen for demos and examples, and adds a Newton GL selector for compatible packaged programs; - keeps operational workflows and utilities under `scripts/`; - updates documentation, the interactive command builder, standalone tests, wheel checks, and migration notes; and - removes the temporary `ppisp_camera_ovrtx.py` QA script. There is no linked issue. ## Type of change - New feature (non-breaking change which adds functionality) - Breaking change (existing functionality will not work without user modification) - Documentation update ## Release backport - [x] <!-- backport-active-release --> Backport this pull request to the active release branch after it merges into `develop` ## Screenshots Not applicable. ## Validation - `uv run isaaclab -f` — passed. - `uv run --extra test python -m pytest -q source/isaaclab/test/cli/test_installed_workflow_entrypoints.py source/isaaclab/test/app/test_loading_screen.py source/isaaclab/test/app/test_standalone_scripts.py source/isaaclab_visualizers/test/test_newton_visualizer_viewer_release.py` — 109 passed; 334 simulator-launch cases skipped by the existing opt-in gate. - `uv run --isolated --extra dev -- make -C docs current-docs` — full HTML build succeeded without warnings. - Built the unified `isaaclab-3.0.0` wheel, installed it in a clean environment, and resolved all six demos, 24 examples, and the domino asset from the installed package. - `uv run isaaclab demo zoo --help` and `uv run isaaclab example newton-dominoes --help` — passed. The existing install-CI wheel smoke fixture could not run locally because its legacy `isaaclab.sh -u` setup did not create the expected environment; the direct wheel build and isolated install checks above passed. ## Checklist - [x] I have read and understood the [contribution guidelines](https://isaac-sim.github.io/IsaacLab/main/source/refs/contributing.html) - [x] I have run the [`pre-commit` checks](https://pre-commit.com/) with `uv run isaaclab -f` - [x] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [x] I have added tests that prove my fix is effective or that my feature works - [x] I have added a changelog fragment under `source/<pkg>/changelog.d/` for every touched package (do **not** edit `CHANGELOG.rst` or bump `extension.toml` — CI handles that) - [x] I have added my name to the `CONTRIBUTORS.md` or my name already exists there --------- Co-authored-by: Maximilian Krause <maximiliank@nvidia.com> (cherry picked from commit 4d7e1db)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Package curated Isaac Lab showcases and focused examples in the released wheel. Run them without a source checkout through
uvx isaaclab demo <name>anduvx isaaclab example <name>.This change:
examples/tree: six showcases inexamples/demos/, 24 focused programs inexamples/and topic folders such asexamples/mpm/andexamples/sensors/, and shared data inexamples/assets/;--num_envssupport, while classifying the Newton dominoes scene as an example;scripts/;ppisp_camera_ovrtx.pyQA script.There is no linked issue.
Type of change
Release backport
developScreenshots
Not applicable.
Validation
uv run isaaclab -f— passed.uv run --extra test python -m pytest -q source/isaaclab/test/cli/test_installed_workflow_entrypoints.py source/isaaclab/test/app/test_loading_screen.py source/isaaclab/test/app/test_standalone_scripts.py source/isaaclab_visualizers/test/test_newton_visualizer_viewer_release.py— 109 passed; 334 simulator-launch cases skipped by the existing opt-in gate.uv run --isolated --extra dev -- make -C docs current-docs— full HTML build succeeded without warnings.isaaclab-3.0.0wheel, installed it in a clean environment, and resolved all six demos, 24 examples, and the domino asset from the installed package.uv run isaaclab demo zoo --helpanduv run isaaclab example newton-dominoes --help— passed.The existing install-CI wheel smoke fixture could not run locally because its legacy
isaaclab.sh -usetup did not create the expected environment; the direct wheel build and isolated install checks above passed.Checklist
pre-commitchecks withuv run isaaclab -fsource/<pkg>/changelog.d/for every touched package (do not editCHANGELOG.rstor bumpextension.toml— CI handles that)CONTRIBUTORS.mdor my name already exists there