Skip to content

Add video recording support to eval_runner.py#445

Open
cvolkcvolk wants to merge 15 commits intomainfrom
cvolk/feature/video_grid_droid_pnp
Open

Add video recording support to eval_runner.py#445
cvolkcvolk wants to merge 15 commits intomainfrom
cvolk/feature/video_grid_droid_pnp

Conversation

@cvolkcvolk
Copy link
Collaborator

@cvolkcvolk cvolkcvolk commented Feb 26, 2026

Summary

Adds the ability to record videos of evaluation jobs via --video flag. Each job produces an mp4 in a per-job subdirectory under --video_dir

python isaaclab_arena/evaluation/eval_runner.py \
  --eval_jobs_config isaaclab_arena_environments/eval_jobs_configs/droid_pnp_srl_gr00t_jobs_config.json \
  --video

@cvolkcvolk cvolkcvolk changed the title Droid Pnp screen record DRAFT Droid Pnp screen record Feb 26, 2026
@cvolkcvolk cvolkcvolk changed the title DRAFT Droid Pnp screen record Add video recording support to eval_runner.py Feb 27, 2026
@cvolkcvolk cvolkcvolk marked this pull request as ready for review February 27, 2026 10:16
@cvolkcvolk cvolkcvolk force-pushed the cvolk/feature/video_grid_droid_pnp branch from bcce498 to 9f1e1cb Compare February 27, 2026 10:48
Comment on lines +303 to +304
if render_mode is None:
env = env.unwrapped
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's the reasoning here? If we're in a non-None render mode we don't wanna unwrap the env? Might be worth a comment.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

VideoRecorder is a gym wrapper we don't want to strip away. If we don't require the render_mode, keep the default behaviour to return an unwrapped version

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Having looked deeper into this, we actually might want to return an wrapped gym environment as IsaacLab is doing it

Comment on lines +118 to +122
if hasattr(env.unwrapped.cfg, "metrics"):
# NOTE(xinjieyao, 2025-10-07): lazy import to prevent app stalling caused by omni.kit
from isaaclab_arena.metrics.metrics import compute_metrics

metrics = compute_metrics(env)
metrics = compute_metrics(env.unwrapped)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is the robust to the env not being unwrapped? I think we had conditional unwrapping of env. Doesn't that mean if video is not requested, and the env is pre-unwrapped, that this will fail?

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: Clemens Volk <cvolk@nvidia.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants