Skip to content

Enable Newton RTX video capture - #7056

Merged
kellyguo11 merged 4 commits into
isaac-sim:developfrom
maxkra15:agent/newton-rtx-video-export
Aug 13, 2026
Merged

Enable Newton RTX video capture#7056
kellyguo11 merged 4 commits into
isaac-sim:developfrom
maxkra15:agent/newton-rtx-video-export

Conversation

@maxkra15

Copy link
Copy Markdown

Summary

  • expose the Newton OVRTX LDR framebuffer through NewtonRTXVisualizer.render_rgb_array()
  • support on-demand framebuffer rendering in headless mode
  • allow --video with --viz newton_rtx and the explicit visualizer:newton_rtx recorder source
  • update the focused documentation and package changelog fragments

Motivation

ViewerRTX.save_screenshot() already reads the OVRTX LdrColor render product, but Isaac Lab's RTX adapter left render_rgb_array() as a stub and classified newton_rtx as a non-capturing visualizer. This keeps the Newton-specific readback inside the adapter and reuses Isaac Lab's existing video recorder and H.264 export path.

Scope

This is backend-generic support. It contains no task or conveyor-specific code and only updates the two closest existing unit tests.

Validation

  • 88 passed: Newton adapter, RL video configuration, and video recorder test files
  • Ruff, Ruff format, and focused RST pre-commit hooks
  • End-to-end Newton RTX export: 1920x1080, 60 FPS, 1,800-frame H.264 MP4

@github-actions github-actions Bot added documentation Improvements or additions to documentation isaac-lab Related to Isaac Lab team labels Aug 12, 2026
@maxkra15
maxkra15 marked this pull request as ready for review August 13, 2026 00:00
@maxkra15
maxkra15 requested a review from a team August 13, 2026 00:00
@greptile-apps

greptile-apps Bot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

The PR enables video capture from the Newton RTX visualizer by exposing its OVRTX LDR framebuffer and rendering it on demand in headless mode.

  • Adds contiguous RGB framebuffer readback through NewtonViewerRTX.get_frame().
  • Integrates newton_rtx into recorder and RL CLI source selection.
  • Updates focused tests, documentation, configuration descriptions, and changelog fragments.

Confidence Score: 5/5

The PR appears safe to merge with no concrete blocking or independently actionable non-blocking issues identified.

The changed recorder selection, headless render lifecycle, and framebuffer readback form a consistent capture path, and the investigated initialization, pause, and source-selection cases did not establish an observable changed-code failure.

Important Files Changed

Filename Overview
source/isaaclab_visualizers/isaaclab_visualizers/newton/newton_visualizer.py Adds OVRTX LDR framebuffer readback and an on-demand headless RTX render cycle; no actionable defect was established.
source/isaaclab/isaaclab/envs/utils/video_recorder.py Updates visualizer-source messaging to recognize Newton RTX while preserving explicit type matching and existing frame validation.
source/isaaclab_rl/isaaclab_rl/entrypoints/common.py Reclassifies Newton RTX as capture-capable so --video --viz newton_rtx selects the corresponding recorder source.
source/isaaclab_rl/test/test_apply_video_recording.py Updates source-selection coverage to verify that Newton RTX is accepted as a requested capture visualizer.
source/isaaclab_visualizers/test/test_newton_adapter.py Updates the adapter test to assert that RTX framebuffer capture returns the viewer frame.
source/isaaclab_visualizers/isaaclab_visualizers/newton/newton_visualizer_cfg.py Documents the newly supported framebuffer capture contract and retained tiled-panel limitation.

Sequence Diagram

sequenceDiagram
    participant Env as Environment step
    participant Recorder as VideoRecorder
    participant Adapter as NewtonRTXVisualizer
    participant Viewer as NewtonViewerRTX / OVRTX
    Env->>Recorder: step()
    Recorder->>Adapter: render_rgb_array()
    alt Headless with current state
        Adapter->>Viewer: begin_frame(sim_time)
        Adapter->>Viewer: log_state(state)
        Adapter->>Viewer: end_frame()
    end
    Adapter->>Viewer: get_frame()
    Viewer->>Viewer: read LdrColor pixels
    Viewer-->>Adapter: contiguous RGB ndarray
    Adapter-->>Recorder: frame
    Recorder->>Recorder: append and export MP4
Loading

Reviews (1): Last reviewed commit: "Enable Newton RTX video capture" | 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 PR consistently wires Newton RTX framebuffer capture through the existing visualizer recorder path and updates the relevant documentation, tests, and package changelogs. One compatibility issue remains: render_rgb_array() now raises when the RTX viewer is unavailable instead of preserving its documented None result.

  • Design and architecture: The framebuffer readback remains encapsulated in the Newton RTX adapter and reuses the existing visualizer:newton_rtx source routing without introducing a parallel recording path.
  • API: The new recorder source is documented consistently, but NewtonRTXVisualizer.render_rgb_array() changes the existing public contract from np.ndarray | None to np.ndarray and raises when the viewer was skipped or unavailable. Preserve the nullable return for that state so existing callers that handle None continue to work.
  • Implementation: The headless capture path renders the latest state before readback and reliably closes the frame in a finally block. Tests cover successful frame return and RL source selection, and changelog fragments cover all affected packages; the unavailable-viewer behavior still needs correction.

Minor fixes needed. Posted 1 actionable finding inline.

Automated review; human maintainers own approval decisions.

Comment thread source/isaaclab_visualizers/isaaclab_visualizers/newton/newton_visualizer.py Outdated
Comment thread docs/source/how-to/record_video.rst
Signed-off-by: Kelly Guo <kellyg@nvidia.com>
@kellyguo11
kellyguo11 merged commit ed1f83d into isaac-sim:develop Aug 13, 2026
20 of 22 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 isaac-lab Related to Isaac Lab team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants