Skip to content

[Worflow] Make newton and rsl_rl default across core tasks - #6980

Closed
StafaH wants to merge 20 commits into
isaac-sim:developfrom
StafaH:mh/new_defaults_core
Closed

[Worflow] Make newton and rsl_rl default across core tasks#6980
StafaH wants to merge 20 commits into
isaac-sim:developfrom
StafaH:mh/new_defaults_core

Conversation

@StafaH

@StafaH StafaH commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Description

Important

Confirm the pull request base before submitting. Target develop for all
contributions. The release/3.0.0-beta2 branch is a frozen stable landing
snapshot and is not used for ongoing maintenance.

Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context.
List any dependencies that are required for this change.

Fixes # (issue)

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (existing functionality will not work without user modification)
  • Documentation update

Screenshots

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

Checklist

  • I have read and understood the contribution guidelines
  • I have run the pre-commit checks 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 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

@StafaH
StafaH requested a review from a team August 7, 2026 21:45
@StafaH StafaH changed the title Make newton and rsl_rl default across core tasks [Worflow] Make newton and rsl_rl default across core tasks Aug 7, 2026
@github-actions github-actions Bot added the isaac-lab Related to Isaac Lab team label Aug 7, 2026
@greptile-apps

greptile-apps Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

The PR makes Newton MJWarp and RSL-RL the defaults across core tasks while preserving explicit backend selection.

  • Adds task-registered default-agent dispatch when --rl_library is omitted.
  • Changes core physics and renderer presets from Isaac Sim PhysX/RTX to kitless Newton defaults.
  • Adds an RSL-RL PPO configuration for Pendulum and updates runtime/preset tests.

Confidence Score: 5/5

The PR appears safe to merge, with no concrete blocking or non-blocking defects identified in the changed behavior.

Default-agent lookup follows the repository's established Gym task-name convention, and the Newton physics and renderer defaults are coordinated with explicit alternatives and updated compatibility coverage.

Important Files Changed

Filename Overview
source/isaaclab_rl/isaaclab_rl/entrypoints/dispatch.py Resolves an omitted RL-library argument from the selected task's registered default agent while retaining selector help for tasks without a valid default.
source/isaaclab_tasks/isaaclab_tasks/utils/presets.py Changes the default renderer to Newton Warp while retaining explicit Isaac RTX, automatic RTX, and OVRTX alternatives.
source/isaaclab_tasks/isaaclab_tasks/core/pendulum/agents/rsl_rl_ppo_cfg.py Adds the RSL-RL PPO runner configuration needed by Pendulum's new default-agent registration.
source/isaaclab_tasks/isaaclab_tasks/core/lift/lift_env_cfg.py Makes Newton MJWarp the default lift-task physics preset while preserving explicit PhysX alternatives.
source/isaaclab_tasks/test/core/test_runtime_compatibility.py Updates compatibility expectations to verify the new Newton and kitless renderer defaults.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart LR
  CLI["Unified train/play CLI"] --> Task["Read --task"]
  Task --> Registry["Gym task registry"]
  Registry --> Agent["default_agent = rsl_rl"]
  Agent --> Backend["RSL-RL backend"]
  Registry --> Config["Core task configuration"]
  Config --> Physics["Newton MJWarp physics"]
  Config --> Renderer["Newton Warp renderer"]
  Physics --> Runtime["Kitless default runtime"]
  Renderer --> Runtime
Loading

Reviews (1): Last reviewed commit: "Make newton and rsl_rl default" | Re-trigger Greptile

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

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.

Isaac Lab Review Bot

The new task-registered RSL-RL fallback and Newton MJWarp/Newton Warp defaults are implemented consistently, but both added changelog fragments are empty despite these user-visible behavior changes.

  • Design and architecture: Task-level default_agent metadata provides a centralized backend-selection mechanism, while the preset aliases consistently establish Newton MJWarp and the Newton Warp renderer as defaults. No architectural issue was accepted beyond the missing release documentation for these decisions.
  • API: Explicit --rl_library and explicit physics/renderer presets remain available, but omitted selections now resolve differently. These changed CLI and default-preset behaviors require package changelog entries with appropriate migration guidance.
  • Implementation: The required fragment files exist for isaaclab_rl and isaaclab_tasks, but both are empty and therefore produce no compiled changelog entry. Populate them under the appropriate Changed category, marking the breaking default switch and documenting how users can explicitly retain prior behavior.

Minor fixes needed. Posted 1 actionable finding inline.

Automated review; human maintainers own approval decisions.

@configclass
class MultiBackendRendererCfg(PresetCfg):
default: IsaacRtxRendererCfg = IsaacRtxRendererCfg()
default: NewtonWarpRendererCfg = NewtonWarpRendererCfg()

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.

🟡 Warning · Implementation — Empty changelog fragments for breaking default switch

This change flips resolved defaults (renderer to Newton Warp, core physics/decimation to newton_mjwarp) and makes --rl_library optional, but source/isaaclab_tasks/changelog.d/default-newton-rsl.minor.rst and source/isaaclab_rl/changelog.d/default-newton-rsl.minor.rst were added with no content, so the compiled changelog will carry no entry. Repository rules require a Changed entry per touched package, prefixed with **Breaking:**, plus migration guidance (e.g. selecting presets=isaacsim_physx,isaacsim_rtx to restore prior behavior).

StafaH added 3 commits August 7, 2026 16:01
Making Newton MJWarp and the Newton renderer the defaults changed what
several tests resolved to, so they compared new-backend output against
PhysX/Isaac-RTX baselines or exercised a backend they were not written
for. Select the backend explicitly instead so the resolution no longer
tracks whichever preset is currently the default:

- rendering-correctness and visualizer golden tests pin isaacsim_physx
  and isaacsim_rtx; the baselines are renamed to state the pinned
  backends (contents unchanged).
- the AnymalD determinism suite pins isaacsim_physx, since Newton MJWarp
  is not yet run-to-run deterministic on CUDA for locomotion.

The recorded robot-PoV camera shared by the XR reference tasks is pinned
to the Isaac RTX renderer in the config itself: the Newton renderer
cannot load the UDIM textures of the GR1T2 and G1 assets, so the default
flip aborted PickPlace env creation and Mimic dataset generation.
StafaH added 2 commits August 8, 2026 00:06
The default-flip commit renamed the golden PNGs from
default_physics-default_renderer-* to isaacsim_physx-isaacsim_rtx-*
but deleted the matching -stage.usda goldens instead of renaming
them, so test_rendering_registered_tasks failed with
"Golden stage not found" for both camera tasks.

@hujc7 hujc7 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Looking great. Might still need to explicit resolve the physics for some tests if they were using the default physx?

StafaH and others added 5 commits August 8, 2026 12:34
# Conflicts:
#	source/isaaclab_tasks/isaaclab_tasks/core/lift/config/franka_soft/__init__.py
The develop merge bumped several editable package versions in their
extension.toml files. Refresh the lockfile so it matches the merged
tree.
The environment tests run every registered task sequentially in one
process. Warp arrays release their device memory from a finalizer, so an
array left for a later garbage collection runs wp_free_device_async
against streams that SimulationContext.clear_instance() has already
destroyed, segfaulting the interpreter mid-run.

Collect unreachable objects while the device is still alive so those
finalizers run at a safe point. Making Newton the default backend for the
core tasks put many more Warp arrays in flight, which is what exposed
this ordering.
# Conflicts:
#	source/isaaclab_tasks/test/core/test_environment_determinism.py

@AntoineRichard AntoineRichard left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Look, good, a lot of tasks change default from PhysX to Newton. If that's what we want then it's great!

Comment thread uv.lock

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I don't think the loc should have changed?

@kellyguo11 kellyguo11 left a comment

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.

should we keep all of our documentation and tutorials to use --viz newton by default with this change? and only use --viz kit when kit is required, and highlight in those docs that isaac sim is required for them

@kellyguo11 kellyguo11 moved this to In review in Isaac Lab Aug 11, 2026
@ooctipus

Copy link
Copy Markdown
Collaborator

kwargs={
        "env_cfg_entry_point": f"{name}.joint_pos_env_cfg:FrankaCabinetEnvCfg",
        "agent_entry_point": preset(
                  default = f"{agents.name}.rsl_rl_ppo_cfg:CabinetPPORunnerCfg",
                  decrete_box = f"{agents.name}:skrl_manager_ppo_cfg.yaml"
                  rsl_rl_cfg_entry_point=f"{agents.name}.rsl_rl_ppo_cfg:CabinetPPORunnerCfg",
                  rl_games_cfg_entry_point = f"{agents.name}:rl_games_manager_ppo_cfg.yaml",
                  skrl_cfg_entry_point = f"{agents.name}:skrl_manager_ppo_cfg.yaml"
        )
    }
    
What do you think of option like this?

@StafaH

StafaH commented Aug 13, 2026

Copy link
Copy Markdown
Contributor Author

Superseded by split PRs: #7064 (locomotion), #7065 (manipulation), #7066 (classic controls and renderer), #7067 (RSL-RL default), and this contrib coverage PR.

@StafaH

StafaH commented Aug 13, 2026

Copy link
Copy Markdown
Contributor Author

The contrib coverage split is #7068.

StafaH added a commit that referenced this pull request Aug 14, 2026
Splits the default RL-library change from #6980.\n\n- Resolves
`default_agent` from task registration when `--rl_library` is
omitted.\n- Registers RSL-RL as the default for core tasks, including a
Pendulum RSL-RL config.\n- Adds dispatch coverage and a breaking-change
fragment.\n\nValidation: `uv run python -m pytest
source/isaaclab_rl/test/test_entrypoints.py -q` (11 passed, 2
skipped).\n\nSupersedes the RSL-RL portion of #6980.
StafaH added a commit that referenced this pull request Aug 15, 2026
Splits the Ant, Humanoid, and Velocity Newton defaults from #6980.\n\n-
Defaults Ant, Humanoid, and Velocity task configurations to Newton
MJWarp.\n- Includes the shared three-backend core smoke-test matrix and
teardown reliability cleanup.\n- Removes obsolete Play/MJWarp-discovery
test utility logic.\n\nThe shared test commit is intentionally identical
to the other environment shards; rebase/drop it after the first shard
merges.\n\nSupersedes the locomotion portion of #6980.
StafaH added a commit that referenced this pull request Aug 15, 2026
Splits the Cabinet and Lift Newton defaults from #6980.\n\n- Defaults
Cabinet, Lift, and Kuka Allegro task configurations to Newton MJWarp.\n-
Includes the shared three-backend core smoke-test matrix and teardown
reliability cleanup.\n- Removes obsolete Play/MJWarp-discovery test
utility logic.\n\nThe shared test commit is intentionally identical to
the other environment shards; rebase/drop it after the first shard
merges.\n\nSupersedes the manipulation portion of #6980.
ooctipus added a commit that referenced this pull request Aug 15, 2026
Splits the Cartpole and shared-renderer defaults from #6980.\n\n-
Defaults Cartpole to Newton MJWarp.\n- Defaults
`MultiBackendRendererCfg` to the Newton renderer while retaining
explicit Isaac RTX selection.\n- Consolidates core environment smoke
tests into one three-backend matrix (`newton_mjwarp`, `physx`,
`isaacsim_physx`).\n- Removes obsolete Play/MJWarp-discovery test
utility logic and the redundant Newton test module.\n\nValidation: `uv
run python -m pytest
source/isaaclab_tasks/test/core/test_preset_kit_decision.py
source/isaaclab_tasks/test/core/test_runtime_compatibility.py -q` (51
passed).\n\nSupersedes the classic-controls portion of #6980.

---------

Co-authored-by: ooctipus <zhengyuz@nvidia.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

isaac-lab Related to Isaac Lab team

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

5 participants