Skip to content

Fix Newton GL Pause Rendering desync and document Rerun Play/Pause limitation - #7506

Merged
kellyguo11 merged 2 commits into
isaac-sim:developfrom
matthewtrepte:mtrepte/debug-2
Sep 3, 2026
Merged

Fix Newton GL Pause Rendering desync and document Rerun Play/Pause limitation#7506
kellyguo11 merged 2 commits into
isaac-sim:developfrom
matthewtrepte:mtrepte/debug-2

Conversation

@matthewtrepte

@matthewtrepte matthewtrepte commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

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

  • Backport this pull request to the active release branch after it merges into develop

Test plan

  • uv run isaaclab -f (ruff, ruff format, rst checks, changelog fragment check) — all passed
  • uv run python tools/changelog/cli.py check develop — passed
  • 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)
  • Manually verified live in the Newton GL visualizer window: Space now flips the Pause/Resume Rendering button label immediately, matching a direct click

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.
@matthewtrepte
matthewtrepte requested a review from a team September 2, 2026 23:54
@github-actions github-actions Bot added bug Something isn't working documentation Improvements or additions to documentation isaac-lab Related to Isaac Lab team labels Sep 2, 2026
@greptile-apps

greptile-apps Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

The PR consolidates Newton GL rendering pause state onto the viewer’s existing _paused flag, keeping keyboard, button, and query behavior synchronized.

  • Updates the Newton GL control label and pause-state implementation.
  • Adds a regression test covering Space-key and ImGui-button synchronization.
  • Documents the Rerun live-view timeline limitation and adds a changelog fragment.

Confidence Score: 5/5

The 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

Filename Overview
source/isaaclab_visualizers/isaaclab_visualizers/newton/newton_visualizer.py Uses the Newton GL viewer’s _paused field as the single rendering-pause source of truth while leaving RTX behavior unchanged.
source/isaaclab_visualizers/test/test_newton_adapter.py Adds focused regression coverage for pause-state synchronization between the Space shortcut, status API, and rendering-control button.
docs/source/overview/core-concepts/visualization.rst Documents that Rerun’s native timeline controls do not control live simulations and directs users to Isaac Lab controls.
source/isaaclab_visualizers/changelog.d/fix-newton-gl-pause-rendering-space-sync.rst Accurately records the Newton GL pause synchronization fix and updated control hint.

Reviews (1): Last reviewed commit: "Document that Rerun Play/Pause timeline ..." | 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 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 _paused flag as the single source of truth is a focused replacement for the mirrored _paused_rendering state 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 _paused field 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.

@kellyguo11

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 3, 2026
@kellyguo11
kellyguo11 merged commit c96b25f into isaac-sim:develop Sep 3, 2026
47 of 49 checks passed
@isaaclab-bot

isaaclab-bot Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Backported to release/3.0.0 as 21a2e7c.

isaaclab-bot Bot pushed a commit that referenced this pull request Sep 3, 2026
…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)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working documentation Improvements or additions to documentation isaac-lab Related to Isaac Lab team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants