Skip to content

Cherry-picks RLinf/compass doc updates, visualizer fixes, presets and imports fixes, Newton 1.2.1rc2 pin#6014

Merged
kellyguo11 merged 10 commits into
isaac-sim:release/3.0.0-beta2from
kellyguo11:cherry-pick-0607
Jun 7, 2026
Merged

Cherry-picks RLinf/compass doc updates, visualizer fixes, presets and imports fixes, Newton 1.2.1rc2 pin#6014
kellyguo11 merged 10 commits into
isaac-sim:release/3.0.0-beta2from
kellyguo11:cherry-pick-0607

Conversation

sameerchavan0027 and others added 8 commits June 7, 2026 12:55
# Description
Bug : 6247480

Observation:
1. Documented checkpoint save path <output_dir>/checkpoints/ does not
match actual
   behavior — checkpoints are saved directly under <output_dir>/

The doc states:
"The resulting checkpoint will be stored in <output_dir>/checkpoints/
with the filename
   model_<iteration_number>.pt"

Actual directory layout after training completes:

  ~/compass-nurec/output/galileo_spot/
  ├── model_0.pt
  ├── model_50.pt
  ├── model_100.pt
  ├── model_150.pt
  ├── model_200.pt
  ├── debug_images/
  ├── tensorboard/
  └── videos/

No checkpoints/ subdirectory is created. Checkpoint files are written
directly to the
output root. Any user or test step that follows the doc and checks
<output_dir>/checkpoints/ for verification will get:

ls: cannot access '<output_dir>/checkpoints/': No such file or directory

Command:

${ISAACLAB_PATH:?}/isaaclab.sh -p run.py \ -c
configs/train_config_real2sim.gin \ -o
~/compass-nurec/output/galileo_spot \ -b
~/compass-nurec/X-Mobility/x_mobility-nav2-semantic_action_path.ckpt \
--embodiment spot \ --environment nova_carter-galileo \ --num_envs 64 \
--video --video_interval 1 \ --visualizer kit \ --enable_cameras \
--precompute_valid_poses

File:
docs/source/policy_deployment/03_compass_with_NuRec/compass_navigation_policy_with_NuRec.rst

Doc:
https://isaac-sim.github.io/IsaacLab/release/3.0.0-beta2/index.html

Error Logs: N/A
Expected:
Doc should state checkpoints are saved directly at
<output_dir>/model_<N>.pt. Checkpoint save interval is every 50
iterations (confirmed: model_0.pt, model_50.pt, model_100.pt, etc.).

## Checklist

- [ ] I have read and understood the [contribution
guidelines](https://isaac-sim.github.io/IsaacLab/main/source/refs/contributing.html)
- [ ] I have run the [`pre-commit` checks](https://pre-commit.com/) with
`./isaaclab.sh --format`
- [ ] 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 updated the changelog and the corresponding version in the
extension's `config/extension.toml` file
- [ ] I have added my name to the `CONTRIBUTORS.md` or my name already
exists there

<!--
As you go through the checklist above, you can mark something as done by
putting an x character in it

For example,
- [x] I have done this task
- [ ] I have not done this task
-->
<!--
Thank you for your interest in sending a pull request. Please make sure
to check the contribution guidelines.

Link:
https://isaac-sim.github.io/IsaacLab/main/source/refs/contributing.html

💡 Please try to keep PRs small and focused. Large PRs are harder to
review and merge.
-->

Fixes
- remove legacy isaaclab_visualizers/setup.py
- fix too small ground plane mesh in Rerun and Viser visualizers in some
envs
- fix flickering ground in Viser visualizer
- fix library conflict with imgui_bundle, which broke Newton viewer's
HUD
- expand viz test to include a specific check for imgui_bundle failure
to load (this often occurs due to new conflict libraries which causes
Newton visualizer HUD to break)
- prevent log spam from [Warning] [omni.physx.tensors.plugin] Failed to
find rigid body...
- add contact arrows to newton visualizer with a limitation note to the
visualization docs
- fix an edgecase where wrong viz marker prototype is used when marker
count equals number of prototype
- move the xr visualization test from test/visualization ->
test/xr_visualization to separate it more from test/visualizers

<!-- As a practice, it is recommended to open an issue to have
discussions on the proposed pull request.
This makes it easier for the community to keep track of what is being
developed or added, and if a given feature
is demanded by more than one party. -->

<!-- As you go through the list, delete the ones that are not
applicable. -->

- Bug fix (non-breaking change which fixes an issue)

Please attach before and after screenshots of the change if applicable.

<!--
Example:

| Before | After |
| ------ | ----- |
| _gif/png before_ | _gif/png after_ |

To upload images to a PR -- simply drag and drop an image while in edit
mode and it should upload the image directly. You can then paste that
source into the above before/after sections.
-->

- [ ] I have read and understood the [contribution
guidelines](https://isaac-sim.github.io/IsaacLab/main/source/refs/contributing.html)
- [ ] I have run the [`pre-commit` checks](https://pre-commit.com/) with
`./isaaclab.sh --format`
- [ ] 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 updated the changelog and the corresponding version in the
extension's `config/extension.toml` file
- [ ] I have added my name to the `CONTRIBUTORS.md` or my name already
exists there

<!--
As you go through the checklist above, you can mark something as done by
putting an x character in it

For example,
- [x] I have done this task
- [ ] I have not done this task
-->
# Description

Fix broken docs links due to LEAPP update and IsaacSim update that moved
docs around.

## 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
`./isaaclab.sh --format`
- [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 updated the changelog and the corresponding version in the
extension's `config/extension.toml` file
- [x] I have added my name to the `CONTRIBUTORS.md` or my name already
exists there

---------

Co-authored-by: Antoine Richard <antoiner@nvidia.com>
…olution (isaac-sim#5944)

alternative to isaac-sim#5939

- Selecting a typed preset (e.g. `presets=newton_mjwarp`) on a task that
does **not** declare that name on a `PhysicsCfg`/`RendererCfg`
previously created a silent mixed configuration: the name would match an
unrelated scalar/sensor preset that happens to share the name, tuning
those fields while leaving the real backend (e.g. PhysX) untouched. This
adds a post-resolution check that a selected *reserved* typed name
actually landed on a config of its own type at least once, and raises a
clear `ValueError` otherwise.
- The set of reserved canonical names is declared per typed target in
`PresetTarget` (`preset_target.py`) — `PHYSICS = {newton_mjwarp,
newton_kamino}`, plus the known renderer backends. New solvers/renderers
opt in by adding their name there; the resolver hardcodes nothing.
`physx`/`ovphysx` are intentionally **not** reserved (PhysX is the
default backend, so selecting it on a task without a physics preset is
harmless rather than a silent mismatch).
- Implementation is minimal: one `typed_hits: set[str]` threaded through
`_pick_alternative`/`_resolve_active_presets` records when a reserved
name resolves to a value of its target type; `_validate_typed_presets`
then flags `reserved-selected ∩ consumed − typed_hits`. Truly-unknown
names continue to flow to the existing "Unknown preset(s)" error path.

| Invocation | Result |
|---|---|
| `Isaac-Velocity-Flat-Anymal-C-v0 presets=newton_mjwarp` | resolves
(lands on `NewtonCfg`) |
| `Isaac-Navigation-Flat-Anymal-C-v0 presets=newton_mjwarp` |
`ValueError` (no Newton physics; only matched a sensor/scalar) |
| `Isaac-Navigation-Flat-Anymal-C-v0 presets=physx` | resolves (PhysX
not reserved, benign) |
| `Isaac-Navigation-Flat-Anymal-C-v0 presets=newton_kamino` | "Unknown
preset(s)" (unchanged path) |
| legacy alias `presets=newton` on navigation | `ValueError`
(canonicalized to `newton_mjwarp`) |

- [x] `./isaaclab.sh -p -m pytest
source/isaaclab_tasks/test/core/test_hydra.py` (added 7 regression tests
for the validator + end-to-end resolution; full file passes)
- [x] `test_preset_cli.py`, `test_newton_solver_preset_names.py`,
`test_preset_kit_decision.py` pass
- [x] Config-resolution probes for the table above
- [x] `pre-commit` (ruff/format/codespell/rst/license) green
- [ ] CI

A changelog fragment is included under
`source/isaaclab_tasks/changelog.d/`.
- Bump all mirrored `newton[sim]` git pins from `v1.2.0` to `v1.2.1rc2`.
- Update the wheel builder dependency list to use the same Newton tag.
- Add changelog fragments for the touched Newton, PhysX, and visualizer
packages.

- `git ls-remote --tags https://github.com/newton-physics/newton.git
v1.2.1rc2`
- `python tools/changelog/cli.py compile --package isaaclab_newton
--dry-run`
- `python tools/changelog/cli.py compile --package isaaclab_physx
--dry-run`
- `python tools/changelog/cli.py compile --package isaaclab_visualizers
--dry-run`
- Changelog gate logic against `upstream/develop`
- `git diff --check upstream/develop...HEAD`
- Parsed edited TOML files with `tomllib`
- `python -m py_compile source/isaaclab_visualizers/setup.py`
## Summary

- `lazy_export()` packages declare their export surface in a sibling
`.pyi` stub, and relative submodule imports (`from . import <sub>`)
belong in that stub so they resolve lazily. A few `__init__.py` files
still imported submodules eagerly, which forced the submodule (and its
transitive imports) to load at package-import time and defeated the lazy
stub.
- `isaaclab/envs/__init__.py`: moved `from . import mdp, ui` into
`envs/__init__.pyi` (added to the stub imports and `__all__`).
- `isaaclab/sensors/ray_caster/__init__.py`: removed the redundant `from
. import patterns` — the stub already declared `patterns`.

After the change, `import isaaclab.envs` no longer pulls `mdp`/`ui`
eagerly (verified they are absent from `sys.modules` until first
access), while `isaaclab.envs.mdp`, `from isaaclab.envs import mdp`,
`ui`, `ray_caster.patterns`, and all named class exports still resolve
correctly.

Left intentionally unchanged: `isaaclab/utils/warp/__init__.py` eagerly
runs `wp.init()` and monkeypatches `wp.to_torch` (its `ProxyArray`
import feeds that runtime shim), so it is genuine eager initialization
rather than a re-export.

## Test plan

- [x] `import isaaclab.envs` → `mdp`/`ui` not in `sys.modules`; resolve
on access.
- [x] `from isaaclab.envs import mdp, ManagerBasedRLEnv` and `import
isaaclab.sensors.ray_caster; ray_caster.patterns` all resolve.
- [x] `pre-commit` (ruff / ruff-format) passes on the changed files.
Resolve issues with valid Windows paths and the installation of decord
on Spark.

- Bug fix (non-breaking change which fixes an issue)
- Documentation update

- [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
`./isaaclab.sh --format`
- [x] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] I have updated the changelog and the corresponding version in the
extension's `config/extension.toml` file
- [x] I have added my name to the `CONTRIBUTORS.md` or my name already
exists there

<!--
As you go through the checklist above, you can mark something as done by
putting an x character in it

For example,
- [x] I have done this task
- [ ] I have not done this task
-->
…izers (isaac-sim#5927)

# Description

<!--
Thank you for your interest in sending a pull request. Please make sure
to check the contribution guidelines.

Link:
https://isaac-sim.github.io/IsaacLab/main/source/refs/contributing.html

💡 Please try to keep PRs small and focused. Large PRs are harder to
review and merge.
-->

Add tutorial script and documentation for Tiled Camera View in
Visualizers

<!-- As a practice, it is recommended to open an issue to have
discussions on the proposed pull request.
This makes it easier for the community to keep track of what is being
developed or added, and if a given feature
is demanded by more than one party. -->

## Type of change

<!-- As you go through the list, delete the ones that are not
applicable. -->

- New feature (non-breaking change which adds functionality)
- Documentation update

## Screenshots

Please attach before and after screenshots of the change if applicable.

<!--
Example:

| Before | After |
| ------ | ----- |
| _gif/png before_ | _gif/png after_ |

To upload images to a PR -- simply drag and drop an image while in edit
mode and it should upload the image directly. You can then paste that
source into the above before/after sections.
-->

## Checklist

- [ ] I have read and understood the [contribution
guidelines](https://isaac-sim.github.io/IsaacLab/main/source/refs/contributing.html)
- [ ] I have run the [`pre-commit` checks](https://pre-commit.com/) with
`./isaaclab.sh --format`
- [ ] 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 updated the changelog and the corresponding version in the
extension's `config/extension.toml` file
- [ ] I have added my name to the `CONTRIBUTORS.md` or my name already
exists there

<!--
As you go through the checklist above, you can mark something as done by
putting an x character in it

For example,
- [x] I have done this task
- [ ] I have not done this task
-->

---------

Signed-off-by: matthewtrepte <mtrepte@nvidia.com>
@github-actions github-actions Bot added documentation Improvements or additions to documentation isaac-lab Related to Isaac Lab team infrastructure labels Jun 7, 2026

@isaaclab-review-bot isaaclab-review-bot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review Summary

This cherry-pick PR bundles 8 commits from develop covering: documentation fixes (COMPASS, LEAPP, links), visualizer improvements (contacts, tiled camera tutorial, ground plane rendering, imgui dependency checks), preset/Hydra refactoring (typed-selector validation, fold_preset_tokens removal), lazy-import fixes, Newton v1.2.1rc2 pin bump, and PhysX rigid-body-view hardening.

Overall the changes are well-structured and improve both the user experience and internal consistency. The "clean up" commit (e3a6487) fixed the duplicate-import issue from the prior review. One critical item remains:


🔴 Critical: Tutorial script imports removed function

scripts/tutorials/07_visualizers/run_tiled_camera_visualizer.py (lines 34-36, 125)

The new tutorial script imports and uses fold_preset_tokens:

from isaaclab_tasks.utils import (
    add_launcher_args,
    fold_preset_tokens,   # ← removed from public API in this same PR
    ...
)

And later calls it (line 125):

sys.argv = [sys.argv[0]] + fold_preset_tokens(hydra_args)

This PR removes fold_preset_tokens from isaaclab_tasks.utils (see preset_cli.py and __init__.pyi). This will produce an ImportError at runtime. The fix is to align with the pattern used everywhere else:

from isaaclab_tasks.utils import (
    add_launcher_args,
    launch_simulation,
    resolve_task_config,
    setup_preset_cli,
)
sys.argv = [sys.argv[0]] + hydra_args

🟡 Minor: Image filename typo — "iteractive"

docs/source/_static/visualizers/kit_viz_anymal_iteractive_view.jpg

The filename contains a typo: iteractive should be interactive. This also propagates to the RST reference in docs/source/how-to/visualizer_tiled_camera.rst:

.. figure:: ../_static/visualizers/kit_viz_anymal_iteractive_view.jpg

Not a functional issue, but would be nice to fix for consistency with the interactive_view naming used by the Newton image.


🟡 Note: PhysX rigid-body-view name collision matching

source/isaaclab_physx/isaaclab_physx/physics/physx_manager.py (around line 195)

The new logic collects non_rigid_body_names using only the leaf prim name:

non_rigid_body_names.add(prim_path.rsplit("/", 1)[-1])

If a non-rigid prim shares its leaf name (e.g. collision, visual) with a rigid-body prim at a different hierarchy location, the rigid-body prim will be kept as exact per-env paths rather than wildcarded. In high-env-count scenes (4096+) this could create many explicit paths. The correctness direction is right — just a note for future performance consideration if common leaf names trigger false positives.


🔵 Observation: PR title says "Newton 1.3.1rc2" but code pins v1.2.1rc2

The PR title references "Newton 1.3.1rc2" while the actual pin in all setup.py files is v1.2.1rc2. This is cosmetic but could confuse anyone searching by version number.


✅ Positive observations

  • The typed-preset validation in hydra.py is well-designed with proper typed_hits tracking threaded through the resolution chain.
  • VisualizationMarkers edge-case fix (marker count == prototype count) is clean and covered by a new unit test.
  • Newton contact arrow rendering with scene-contact-sensor fallback and proper visibility filtering is solid.
  • expand_infinite_plane_scale is well-factored with thorough unit tests covering all edge cases.
  • Newton v1.2.1rc2 pin consistently applied across all 4 locations.
  • The imgui-bundle integration test assertion (assert_no_newton_imgui_bundle_warning) is good defensive CI.
  • Pre-commit, Build Wheel, Check for Broken Links, and Check changelog fragments all pass ✓.
  • The prim_world_positions() reordering (scene articulation first) correctly avoids expensive USD traversal.

Verdict: One critical item remains — the tutorial script's fold_preset_tokens import will fail at runtime and should be patched before merge. Everything else looks good.


Update (commit b2ca1b6): ✅ The critical issue is fixed — fold_preset_tokens import has been removed and sys.argv = [sys.argv[0]] + hydra_args is now used directly, matching all other scripts. No new issues introduced in this commit. LGTM.

@greptile-apps

greptile-apps Bot commented Jun 7, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This cherry-pick consolidates eight PRs onto release/3.0.0-beta2, covering: the fold_preset_tokens → direct-passthrough refactor for the preset CLI (with new typed-selector validation in Hydra), Newton visualizer contact rendering and infinite-plane fixes, PhysX rigid-body wildcard collision fix, visualization marker first-call behaviour, lazy exports for mdp/ui/ray_caster.patterns, Newton pin bump to v1.2.1rc2, and a new tiled-camera visualizer tutorial.

  • Preset CLI refactor (preset_cli.py, hydra.py, all RL scripts): fold_preset_tokens is removed; preset tokens pass through verbatim and register_task now validates that physics=/renderer= selectors actually resolve against a config of the declared type.
  • Visualizer fixes (newton_visualizer.py, newton_adapter.py, rerun_visualizer.py, viser_visualizer.py): contact arrows now fall back to scene contact sensor data when native Newton contacts are absent; infinite-plane scale is expanded for web viewers; Viser avoids re-adding unchanged static planes each frame.
  • New tutorial script (run_tiled_camera_visualizer.py): demonstrates the tiled camera panel for Kit and Newton visualizers — but the script still imports the now-removed fold_preset_tokens, which will raise ImportError at startup.

Confidence Score: 3/5

The new tutorial script crashes on import due to a removed API; the core library changes are solid.

The new run_tiled_camera_visualizer.py tutorial is the only entry point not updated alongside the fold_preset_tokens removal — it raises ImportError immediately. Additionally, 13 scripts have duplicate import entries left from the cherry-pick merge.

scripts/tutorials/07_visualizers/run_tiled_camera_visualizer.py needs its fold_preset_tokens import and call replaced. The ~13 RL training/play scripts with duplicate import lines should also be cleaned up before release.

Important Files Changed

Filename Overview
scripts/tutorials/07_visualizers/run_tiled_camera_visualizer.py New tutorial script for tiled camera visualizer — imports removed fold_preset_tokens API, causing an ImportError at startup.
source/isaaclab_tasks/isaaclab_tasks/utils/preset_cli.py Removes fold_preset_tokens entirely; setup_preset_cli now returns the verbatim remainder for Hydra to parse directly. Clean refactor.
source/isaaclab_tasks/isaaclab_tasks/utils/hydra.py Adds typed-preset validation (physics=/renderer= must resolve against a matching config type) via _validate_typed_presets and typed_hits tracking. Looks correct.
source/isaaclab_visualizers/isaaclab_visualizers/newton/newton_visualizer.py Adds contact visualization fallback using scene contact sensor arrows when native Newton contacts are unavailable; guards correctly with show_contacts flag.
source/isaaclab_visualizers/isaaclab_visualizers/newton_adapter.py Adds expand_infinite_plane_scale and log_geo_with_expanded_plane_scale helpers to fix infinite-plane rendering in web viewers. Well-tested.
source/isaaclab_physx/isaaclab_physx/physics/physx_manager.py Fixes wildcard collision in get_rigid_body_view by keeping exact paths when a rigid body name is shared by a non-rigid prim. Logic is correct and conservative.
source/isaaclab/isaaclab/envs/utils/camera_view.py Prioritises scene articulation state over FrameView/USD fallback in prim_world_positions, and improves error message when no camera sensor matches a prim path.
source/isaaclab/isaaclab/markers/visualization_markers.py Adds _has_visualized flag so omitted marker indices default to prototype 0 on the first call even when count matches prototype count.
scripts/reinforcement_learning/rl_games/play.py Removes fold_preset_tokens and passes hydra args verbatim — correct change, but cherry-pick left duplicate import entries for 4 symbols.
source/isaaclab_newton/isaaclab_newton/physics/newton_manager.py Adds get_contacts() classmethod to expose the current Newton contact buffer to callers (visualizers).

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A["CLI: physics=NAME / renderer=NAME / presets=NAME"] --> B["setup_preset_cli()\nreturns verbatim remainder"]
    B --> C["sys.argv = [argv0] + remainder"]
    C --> D["register_task()\nparses tokens from sys.argv"]
    D --> E["_resolve_active_presets()\nwalks config tree\ncollects typed_hits"]
    E --> F{"typed selector?"}
    F -- "physics= / renderer=" --> G["_validate_typed_presets()\nensures name hit its type"]
    G -- "hit found" --> H["Hydra DictConfig\nregistered"]
    G -- "no hit" --> I["ValueError:\nTyped preset selector did not match"]
    F -- "presets= broadcast" --> H
    H --> J["launch_simulation()"]
Loading

Comments Outside Diff (1)

  1. scripts/reinforcement_learning/rl_games/play.py, line 41-51 (link)

    P2 Duplicate imports — cherry-pick artifact

    get_checkpoint_path, launch_simulation, resolve_task_config, and setup_preset_cli each appear twice in this import block. Python silently accepts duplicate names in a single from … import statement, so there is no runtime error, but the redundant lines should be removed. The same pattern appears in play_rl_games.py, train.py, sb3/play.py, sb3/play_sb3.py, sb3/train.py, skrl/play.py, skrl/play_skrl.py, skrl/train.py, rsl_rl/play.py, rsl_rl/play_rsl_rl.py, environments/random_agent.py, and environments/zero_agent.py.

    Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Reviews (1): Last reviewed commit: "Add tutorial script and documentation fo..." | Re-trigger Greptile

Comment on lines +34 to +40
from isaaclab_tasks.utils import (
add_launcher_args,
fold_preset_tokens,
launch_simulation,
resolve_task_config,
setup_preset_cli,
)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Removed API imported by new tutorial script

fold_preset_tokens was deleted from preset_cli.py and removed from __init__.pyi in this same PR; every other updated script now assigns sys.argv = [sys.argv[0]] + hydra_args directly. Because isaaclab_tasks/utils/__init__.py drives its public exports via lazy_export() (which reads the .pyi stub), fold_preset_tokens is no longer available at runtime. Running this new tutorial script will immediately raise ImportError: cannot import name 'fold_preset_tokens'. The fix is to drop the import and use hydra_args directly, exactly as the other scripts do.

add_launcher_args(parser)
args_cli, hydra_args = setup_preset_cli(parser)
args_cli.task = _resolve_task(args_cli)
sys.argv = [sys.argv[0]] + fold_preset_tokens(hydra_args)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 The sys.argv assignment here uses the removed fold_preset_tokens; replace it with the direct pass-through used by all other updated scripts.

Suggested change
sys.argv = [sys.argv[0]] + fold_preset_tokens(hydra_args)
sys.argv = [sys.argv[0]] + hydra_args

@isaaclab-review-bot

Copy link
Copy Markdown

Incremental Review Update (e3a6487)

Commit reviewed: e3a6487 ("clean up")

✅ New Changes Look Good

The new commit removes duplicate imports from 14 files across scripts/environments/ and scripts/reinforcement_learning/. This cleanup is correct and complete:

File Change
random_agent.py Removed duplicate resolve_task_config, setup_preset_cli
zero_agent.py Removed duplicate resolve_task_config, setup_preset_cli
rl_games/play.py Removed 4 duplicate imports
rl_games/play_rl_games.py Removed 4 duplicate imports
rl_games/train.py Removed duplicate resolve_task_config, setup_preset_cli
rsl_rl/play.py Removed 3 duplicate imports
rsl_rl/play_rsl_rl.py Removed 3 duplicate imports
sb3/play.py Removed 4 duplicate imports
sb3/play_sb3.py Removed 4 duplicate imports
sb3/train.py Removed duplicate resolve_task_config, setup_preset_cli
skrl/play.py Removed 4 duplicate imports
skrl/play_skrl.py Removed 4 duplicate imports
skrl/train.py Removed duplicate resolve_task_config, setup_preset_cli

No new issues introduced.


🔴 Critical Issue Still Outstanding

The tutorial script issue from the original review remains unaddressed:

scripts/tutorials/07_visualizers/run_tiled_camera_visualizer.py still imports and uses fold_preset_tokens (lines 36, 125), which is not exported from isaaclab_tasks.utils. This will cause an ImportError at runtime.


Status Summary

Issue Status
🔴 Tutorial fold_preset_tokens import ❌ Not fixed
🟡 Image filename typo ("iteractive") ❌ Not fixed
🔵 PR title version mismatch ❌ Not fixed
✅ Duplicate imports cleanup ✅ Fixed in this commit

Verdict: The cleanup commit is good, but the critical tutorial import issue must still be resolved before merge.

@kellyguo11 kellyguo11 changed the title Cherry-picks RLinf/compass doc updates, visualizer fixes, presets and imports fixes, Newton 1.3.1rc2 pin Cherry-picks RLinf/compass doc updates, visualizer fixes, presets and imports fixes, Newton 1.2.1rc2 pin Jun 7, 2026
@kellyguo11 kellyguo11 merged commit 5144c76 into isaac-sim:release/3.0.0-beta2 Jun 7, 2026
37 checks passed
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.

6 participants