Fix Newton GL Pause Rendering desync and document Rerun Play/Pause limitation - #7506
Conversation
Space toggled the viewer's own _paused flag directly, bypassing the Isaac Lab Pause Rendering button's separately tracked _paused_rendering flag, so the button label and is_rendering_paused() went stale after pressing Space. Both controls now read/write the same _paused flag.
The native Rerun timeline Play/Pause buttons are hidden by default but can still be revealed through Rerun's own dock panel UI; clicking them has no effect while visualizing a live simulation, since Isaac Lab logs everything statically by default and Play/Pause only ever scrubs already-logged timeline data. Attempted to fully hide the controls by dropping the conflicting collapse_panels=True blueprint flag, but the controls remained reachable, so documenting the limitation instead.
Greptile SummaryThe PR consolidates Newton GL rendering pause state onto the viewer’s existing
Confidence Score: 5/5The PR appears safe to merge, with no concrete blocking or non-blocking defects identified in the changed behavior. The consolidated pause flag matches the Newton GL rendering gate, is initialized before use, keeps the keyboard and ImGui controls synchronized, and has focused regression coverage. Important Files Changed
Reviews (1): Last reviewed commit: "Document that Rerun Play/Pause timeline ..." | Re-trigger Greptile |
There was a problem hiding this comment.
Isaac Lab Review Bot
The change unifies Newton GL rendering-pause state on the inherited _paused flag, keeping the Space shortcut, ImGui button label, and is_rendering_paused() consistent. The accompanying regression test, changelog fragment, and Rerun live-view limitation documentation align with the implementation.
- Design and architecture: Using the viewer-owned
_pausedflag as the single source of truth is a focused replacement for the mirrored_paused_renderingstate and directly addresses the demonstrated desynchronization without introducing a new abstraction or dependency. - API:
is_rendering_paused()retains its public name, signature, and boolean return contract while now accurately reporting pauses initiated through either supported control path. The user-visible behavior change is documented in the package changelog. - Implementation: The button label and click handler now read and write
_paused, matching the existing Space-key path. The focused test covers the Space-then-button sequence, and the Rerun note is integrated into the visualization limitations section using control names consistent with the implementation. The remaining coupling to Newton's inherited private_pausedfield is intentional and clearly documented.
No blocking issues. No inline issue met the actionable-evidence threshold; the assessment above records the review feedback.
Automated review; human maintainers own approval decisions.
|
run-ci |
|
Backported to |
…mitation (#7506) ## Summary - Fixed the Newton GL visualizer's "Pause Rendering" button not reflecting the paused state after pressing `Space`. Both controls now read/write the same underlying `_paused` flag, so the button label and `is_rendering_paused()` stay in sync regardless of whether rendering was paused via the button or the keyboard shortcut. Also clarified the on-screen control hint from "Space - Pause/Resume" to "Space - Pause/Resume Rendering". - Documented that the Rerun visualizer's native Play/Pause timeline controls do not work while visualizing a live simulation/training run (they only scrub already-logged `.rrd` recordings). Isaac Lab's own **Pause Rendering** / **Reset Episode** ImGui controls should be used instead for the live view. ## Release backport - [x] <!-- backport-active-release --> Backport this pull request to the active release branch after it merges into `develop` ## Test plan - [x] `uv run isaaclab -f` (ruff, ruff format, rst checks, changelog fragment check) — all passed - [x] `uv run python tools/changelog/cli.py check develop` — passed - [x] `uv run --extra test python -m pytest source/isaaclab_visualizers/test/test_newton_adapter.py -v` — 51/51 passed, including new regression test `test_newton_gl_viewer_rendering_pause_state_stays_in_sync_with_space_key` (verified it fails without the fix, passes with it) - [x] Manually verified live in the Newton GL visualizer window: Space now flips the Pause/Resume Rendering button label immediately, matching a direct click (cherry picked from commit c96b25f)
Summary
Space. Both controls now read/write the same underlying_pausedflag, so the button label andis_rendering_paused()stay in sync regardless of whether rendering was paused via the button or the keyboard shortcut. Also clarified the on-screen control hint from "Space - Pause/Resume" to "Space - Pause/Resume Rendering"..rrdrecordings). Isaac Lab's own Pause Rendering / Reset Episode ImGui controls should be used instead for the live view.Release backport
developTest plan
uv run isaaclab -f(ruff, ruff format, rst checks, changelog fragment check) — all passeduv run python tools/changelog/cli.py check develop— passeduv run --extra test python -m pytest source/isaaclab_visualizers/test/test_newton_adapter.py -v— 51/51 passed, including new regression testtest_newton_gl_viewer_rendering_pause_state_stays_in_sync_with_space_key(verified it fails without the fix, passes with it)