Skip to content

Add video recording to play benchmarks - #7172

Open
AntoineRichard wants to merge 1 commit into
isaac-sim:developfrom
AntoineRichard:antoiner/benchmark-play-video
Open

Add video recording to play benchmarks#7172
AntoineRichard wants to merge 1 commit into
isaac-sim:developfrom
AntoineRichard:antoiner/benchmark-play-video

Conversation

@AntoineRichard

Copy link
Copy Markdown
Collaborator

Description

Adds video recording support to the RSL-RL, RL-Games, SKRL, and SB3 play benchmark adapters.

Each adapter now:

  • accepts --video and --video_length
  • enables cameras and injects a Kit visualizer before simulation launch when needed
  • applies recorder configuration after launch and before environment creation
  • reports the effective recorder output directory in PlayBundle.video_path

This preserves preconfigured recorder output directories and leaves no-video behavior unchanged. No dependencies or public APIs were added.

Type of change

  • New feature (non-breaking change which adds functionality)

Screenshots

Not applicable.

Validation

  • uv run --extra test --frozen python -m pytest source/isaaclab/test/benchmark/test_api.py source/isaaclab_rl/test/test_apply_video_recording.py -q --disable-warnings — 37 passed
  • uv run --frozen isaaclab -f — passed
  • Changelog validation — passed
  • Real RSL-RL Cartpole play run produced an H.264 MP4; ffprobe reported 1854x1080 and 11 frames
  • Benchmark JSON reported the matching videos/play directory
  • A no-video run produced no media and reported video_path as null

Checklist

  • I have read and understood the contribution guidelines
  • I have run the repository pre-commit checks
  • My changes generate no new warnings
  • I have added behavior-focused tests that prove the feature works
  • I have added a changelog fragment under source/isaaclab/changelog.d/
  • My name already exists in CONTRIBUTORS.md

@AntoineRichard
AntoineRichard requested a review from a team August 19, 2026 13:05
@github-actions github-actions Bot added the isaac-lab Related to Isaac Lab team label Aug 19, 2026
@greptile-apps

greptile-apps Bot commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

The PR adds opt-in video recording to all four RL play benchmark adapters and reports the effective recording directory in each play bundle.

  • Adds --video and --video_length parsing across RSL-RL, RL-Games, SKRL, and SB3.
  • Enables cameras and configures visualizers before simulation launch.
  • Applies recorder configuration before environment creation while preserving custom output directories.
  • Extends benchmark tests to cover argument propagation and recorder setup ordering.

Confidence Score: 5/5

The PR appears safe to merge with no actionable correctness or security issues identified.

The four adapters consistently enable cameras before launch, apply recorder settings before environment creation, preserve configured output directories, and report the directory actually used by the recorder.

Important Files Changed

Filename Overview
source/isaaclab/isaaclab/benchmark/entrypoints/backends/rl_games/benchmark_play_rl_games.py Adds video CLI handling, correctly ordered recorder configuration, and effective output-directory reporting to RL-Games play benchmarks.
source/isaaclab/isaaclab/benchmark/entrypoints/backends/rsl_rl/benchmark_play_rsl_rl.py Adds the shared video-recording lifecycle and bundle metadata to RSL-RL play benchmarks.
source/isaaclab/isaaclab/benchmark/entrypoints/backends/sb3/benchmark_play_sb3.py Integrates camera enablement and recorder setup into SB3 play benchmarks without changing no-video behavior.
source/isaaclab/isaaclab/benchmark/entrypoints/backends/skrl/benchmark_play_skrl.py Adds video argument propagation, pre-launch visualization setup, recording configuration, and bundle path reporting to SKRL.
source/isaaclab/test/benchmark/test_api.py Expands coverage for all backend video arguments and verifies recorder configuration occurs before environment creation.
source/isaaclab/changelog.d/antoiner-benchmark-play-video.rst Documents video recording and PlayBundle video-path support for the four play adapters.

Sequence Diagram

sequenceDiagram
    participant Request as Benchmark play request
    participant Parser as Backend argument parser
    participant Config as Environment config
    participant Sim as Simulation launcher
    participant Env as Gym environment
    participant Bundle as PlayBundle
    Request->>Parser: --video and --video_length
    Parser->>Parser: Enable cameras
    Parser->>Config: Resolve task configuration
    Config->>Config: Add visualizer before launch
    Config->>Sim: Launch simulation
    Sim->>Config: Apply recorder configuration
    Config->>Env: Create environment with recorder
    Env-->>Bundle: Effective recorder output directory
Loading

Reviews (1): Last reviewed commit: "Add video recording to play benchmarks" | 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

Reviewed video recording integration across the RSL-RL, RL-Games, SKRL, and SB3 play benchmark adapters. The changes consistently use the existing shared lifecycle helpers and populate PlayBundle.video_path without altering the default no-video path.

  • Design and architecture: All four adapters follow the same sequence: enable cameras during argument processing, inject pre-launch visualizer configuration, apply recorder settings after simulation launch but before environment creation, and expose the effective recorder directory. A minor residual coupling is that each adapter directly reads video_recorders[0], so multi-recorder behavior would require coordinated updates.
  • API: The new --video and --video_length backend arguments are consistently exposed across all four adapters, use the repository’s CLI naming convention, and preserve the existing behavior when recording is not requested. The user-visible addition is represented by a source/isaaclab changelog fragment.
  • Implementation: The parsing, launch ordering, recorder configuration, environment-creation path, and bundle construction were traced across each backend. Tests cover argument forwarding, camera enablement, visualizer setup, recorder configuration before environment creation, and preservation of a preconfigured output directory. No actionable implementation defect is established by the supplied patch.

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.

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

None yet

Development

Successfully merging this pull request may close these issues.

1 participant