Skip to content

Add loading screen for train/play, default newton and rsl_rl across core - #6933

Merged
kellyguo11 merged 6 commits into
isaac-sim:developfrom
StafaH:mh/loading_screen
Aug 7, 2026
Merged

Add loading screen for train/play, default newton and rsl_rl across core#6933
kellyguo11 merged 6 commits into
isaac-sim:developfrom
StafaH:mh/loading_screen

Conversation

@StafaH

@StafaH StafaH commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Description

image

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 6, 2026 06:20
@github-actions github-actions Bot added documentation Improvements or additions to documentation isaac-lab Related to Isaac Lab team labels Aug 6, 2026
@greptile-apps

greptile-apps Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

The PR adds an interactive startup screen around train/play initialization and allows unified entrypoints to infer an RL backend from task registration. It also changes the shipped core-task defaults to Newton MJWarp and the Newton renderer.

  • Adds staged progress, activity reporting, startup-output spooling, and run summaries.
  • Integrates the screen across all supported RL train/play backends.
  • Adds task-aware default RL-library resolution.
  • Switches core task physics and renderer defaults from Isaac Sim PhysX/RTX to Newton.

Confidence Score: 5/5

The PR appears safe to merge with no concrete changed-code defects identified.

The loading-screen lifecycle, backend dispatch fallback, inherited task presets, and coordinated Newton defaults have reachable implementations consistent with their documented startup flows, and the security lead concerned unchanged pre-existing parsing behavior.

Important Files Changed

Filename Overview
source/isaaclab/isaaclab/app/loading_screen.py Adds the loading-screen lifecycle, staged progress display, activity stack, output spooling, and console restoration.
source/isaaclab_rl/isaaclab_rl/entrypoints/common.py Adds shared startup-screen construction and run-summary formatting across RL backends.
source/isaaclab_rl/isaaclab_rl/entrypoints/dispatch.py Makes explicit RL-library selection optional when a task’s registered configurations provide a default.
source/isaaclab_tasks/isaaclab_tasks/utils/parse_cfg.py Adds registry-based RL-library resolution with an RSL-RL fallback.
source/isaaclab_tasks/isaaclab_tasks/utils/presets.py Changes the multi-backend renderer’s default from Isaac RTX to the Newton renderer.
source/isaaclab/isaaclab/utils/timer.py Extends timed contexts with optional loading-screen activity reporting.

Sequence Diagram

sequenceDiagram
    participant CLI as Unified train/play CLI
    participant Registry as Task registry
    participant Screen as LoadingScreen
    participant Launcher as Simulation launcher
    participant Env as Isaac Lab environment
    participant Agent as RL backend

    CLI->>Registry: Resolve task and default RL library
    CLI->>Screen: Open and show run summary
    Screen->>Screen: Redirect startup output
    CLI->>Launcher: Launch selected simulation backend
    Launcher->>Screen: Report startup activities
    CLI->>Env: Create environment
    Env->>Screen: Report scene, physics, and manager setup
    CLI->>Agent: Build wrapper and policy
    CLI->>Screen: Close and restore console
    CLI->>Agent: Begin training or playback
Loading

Reviews (1): Last reviewed commit: "Make startup more detailed, add logo" | Re-trigger Greptile

@StafaH StafaH changed the title Add loading screen for train/play Add loading screen for train/play, default newton and rsl_rl across core Aug 6, 2026

@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 loading-screen integration, activity reporting, optional RL-library resolution, and Newton-default migration are broadly coherent. Before merge, add the required isaaclab_newton changelog fragment and ensure a task’s marked default RL library is validated against the supported libraries before dispatch.

  • Design and architecture: The loading screen is cleanly scoped to startup, with output spooling and replay on failure, while the global report_activity hook keeps instrumentation decoupled from callers. The backend resolver has one boundary issue: registry metadata is trusted without checking that the selected library is supported by the requested action, allowing dispatch to fail with an uncaught KeyError.
  • API: LoadingScreen, format_run_summary, and report_activity are exported and documented, and Timer(activity=...) is an additive keyword-compatible extension. resolve_rl_library should uphold its documented selection boundary by returning a marked default only when it appears in the supplied libraries collection; otherwise it should fall back or return None.
  • Implementation: The screen lifecycle, progress handling, ticker shutdown, and file-descriptor restoration are internally consistent. The isaaclab_newton Timer instrumentation also requires a changelog fragment for that touched package under the repository’s per-package changelog rule.

Minor fixes needed. Posted 2 actionable findings inline.

Automated review; human maintainers own approval decisions.

NewtonManager._pending_extended_state_attributes = set()
cls._prepare_builder_for_finalize(cls._builder)
with Timer(name="newton_finalize_builder", msg="Finalize builder took:"):
with Timer(name="newton_finalize_builder", msg="Finalize builder took:", activity="Finalizing physics model"):

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 — Missing changelog fragment for isaaclab_newton

This PR modifies source/isaaclab_newton/ (Timer activity labels here and at lines 2010, 2081) but adds no fragment under source/isaaclab_newton/changelog.d/, while isaaclab, isaaclab_rl, and isaaclab_tasks each received one. Repository rules require one fragment per touched package so the nightly job can compile the changelog and version bump. Add <slug>.rst, or <slug>.skip if these labels are considered non-user-facing.

except gym.error.Error:
return None
marked = spec.kwargs.get("default_rl_library")
if marked is not None:

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 · Api — Marked RL library bypasses libraries filter

resolve_rl_library documents that it returns a name from libraries or None, but the default_rl_library branch returns the registered value unchecked. dispatch.run_cli then evaluates backends[library], so a task marking a library that is not a supported backend for the requested action raises an uncaught KeyError instead of the documented fallback or the clean "argument required" exit. Validate the marker against libraries before returning it.

@StafaH StafaH mentioned this pull request Aug 6, 2026
8 tasks
Render the summary and progress as one live display so wrapping, logos, and the bar follow the available terminal width.
StafaH and others added 2 commits August 7, 2026 11:42
The loading screen added helpers above the capture flags in
entrypoints/common.py, shifting the documented line range into
resolve_play_task_name's docstring. Sphinx then failed to lex the
unterminated string as Python and fell back to relaxed highlighting.

Point the range at the four --capture_env_sensors arguments the
surrounding prose describes.
@kellyguo11
kellyguo11 merged commit 2e1225d into isaac-sim:develop Aug 7, 2026
46 of 47 checks passed
@StafaH
StafaH deleted the mh/loading_screen branch August 7, 2026 21:17
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.

4 participants