Skip to content

Package demos and examples behind the Isaac Lab CLI - #7944

Merged
StafaH merged 20 commits into
isaac-sim:developfrom
StafaH:feat/package-demos
Sep 24, 2026
Merged

StafaH merged 20 commits into
isaac-sim:developfrom
StafaH:feat/package-demos

Conversation

@StafaH

@StafaH StafaH commented Sep 22, 2026 •

Copy link
Copy Markdown
Collaborator

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

  • 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

  • I have read and understood the contribution guidelines
  • I have run the pre-commit checks with uv run isaaclab -f
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • 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)
  • I have added my name to the CONTRIBUTORS.md or my name already exists there

@github-actions github-actions Bot added documentation Improvements or additions to documentation isaac-lab Related to Isaac Lab team infrastructure labels Sep 22, 2026
@maxkra15

Copy link
Copy Markdown
Contributor

run-ci

@isaaclab-bot isaaclab-bot Bot added ci:run-docker Trigger the on-demand Docker and GPU CI workflow and removed ci:run-docker Trigger the on-demand Docker and GPU CI workflow labels Sep 22, 2026
@maxkra15

Copy link
Copy Markdown
Contributor

run-ci

@isaaclab-bot isaaclab-bot Bot added ci:run-docker Trigger the on-demand Docker and GPU CI workflow and removed ci:run-docker Trigger the on-demand Docker and GPU CI workflow labels Sep 22, 2026
@maxkra15

Copy link
Copy Markdown
Contributor

run-ci

@isaaclab-bot isaaclab-bot Bot added ci:run-docker Trigger the on-demand Docker and GPU CI workflow and removed ci:run-docker Trigger the on-demand Docker and GPU CI workflow labels Sep 22, 2026
@maxkra15 maxkra15 changed the title Package demos behind the Isaac Lab CLI Package demos and examples behind the Isaac Lab CLI Sep 23, 2026
@maxkra15

Copy link
Copy Markdown
Contributor

run-ci

@isaaclab-bot isaaclab-bot Bot added ci:run-docker Trigger the on-demand Docker and GPU CI workflow and removed ci:run-docker Trigger the on-demand Docker and GPU CI workflow labels Sep 23, 2026
@maxkra15
maxkra15 marked this pull request as ready for review September 23, 2026 07:47
@maxkra15
maxkra15 requested a review from a team September 23, 2026 07:47
@isaaclab-bot isaaclab-bot Bot removed the ci:run-docker Trigger the on-demand Docker and GPU CI workflow label Sep 23, 2026
@maxkra15

Copy link
Copy Markdown
Contributor

run-ci

@isaaclab-bot isaaclab-bot Bot added ci:run-docker Trigger the on-demand Docker and GPU CI workflow and removed ci:run-docker Trigger the on-demand Docker and GPU CI workflow labels Sep 23, 2026
StafaH and others added 2 commits September 23, 2026 18:31
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.
@StafaH

StafaH commented Sep 24, 2026

Copy link
Copy Markdown
Collaborator Author

run-ci

@isaaclab-bot isaaclab-bot Bot added ci:run-docker Trigger the on-demand Docker and GPU CI workflow and removed ci:run-docker Trigger the on-demand Docker and GPU CI workflow labels Sep 24, 2026
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
@StafaH

StafaH commented Sep 24, 2026

Copy link
Copy Markdown
Collaborator Author

run-ci

@isaaclab-bot isaaclab-bot Bot added ci:run-docker Trigger the on-demand Docker and GPU CI workflow and removed ci:run-docker Trigger the on-demand Docker and GPU CI workflow labels Sep 24, 2026
@StafaH

StafaH commented Sep 24, 2026

Copy link
Copy Markdown
Collaborator Author

run-ci

@isaaclab-bot isaaclab-bot Bot added ci:run-docker Trigger the on-demand Docker and GPU CI workflow and removed ci:run-docker Trigger the on-demand Docker and GPU CI workflow labels Sep 24, 2026
@StafaH
StafaH merged commit 4d7e1db into isaac-sim:develop Sep 24, 2026
83 of 84 checks passed
@isaaclab-bot

isaaclab-bot Bot commented Sep 24, 2026

Copy link
Copy Markdown
Contributor

Backported to release/3.0.0 as 8741c6c.

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)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation infrastructure isaac-lab Related to Isaac Lab team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants