Repository navigation
Conversation
The Warp environment classes never wired the VideoRecorder hook, so env_cfg.video_recorders was dropped: ManagerBasedEnvWarp logged a warning and DirectRLEnvWarp ignored it. Create the recorders before the simulation starts, advance them once per step after rendering and outside the captured stages, and flush them on close, mirroring DirectRLEnv, ManagerBasedEnv and ManagerBasedRLEnv. The test builds both hierarchies through WarpFrontend.build_env, so the scene is InteractiveSceneWarp, and runs kitless from a Newton SimulationCfg. It steps fewer times than one clip, so the clip reaches disk only through close() and its frame count pins one tick per step.
apply_video_recording rejected --video on any non-torch frontend because the Warp environments did not drive recorders. They do now, so drop the guard. Make the visualizer pre_launch_video_config adds for --video without --viz frontend-aware: a headless Kit visualizer on the torch frontend, as before, and a headless Newton GL visualizer on the Warp frontend. The Warp frontend always runs Newton physics and is commonly run without the Isaac Sim install that Kit needs. Update the Warp environments guide, which still said --video is rejected, and the 3.0 migration guide, which described the Kit default as unconditional.
A headless Newton GL visualizer declared in sim.visualizer_cfgs recorded a single flat colour. Headless visualizers do not render continuously, so is_rendering is False, and has_active_visualizers only sees --viz. The Newton cloner therefore resolved load_visual_shapes to False and built the model without the shapes the viewer draws. This is the visualizer --video injects on the Warp frontend, so every Warp recording without --viz was empty. The same config is empty on the torch frontend; --viz newton_gl was unaffected. Have each configured visualizer that draws the Newton model request the visual shapes before cloning, the contract camera sensors already use. Assert the Warp recording test's frames show the scene and change over the clip; without the fix both cases fail with a flat frame.
hujc7
force-pushed
the
jichuanh/warp-video-recording
branch
from
October 1, 2026 02:08
b3f4e5f to
29b20b0
Compare
This was referenced Oct 1, 2026
Collaborator
Author
|
run-ci |
Develop's SimulationContext.can_render_rgb_array() now returns True whenever SimulationCfg.visualizer_cfgs lists a visualizer (isaac-sim#8198), so Newton cloning loads visual shapes for a headless visualizer without the explicit require_visual_shapes() call. The Warp video test records non-flat frames without it, and records flat frames once that develop clause is removed.
Develop moved the Warp rejection into pre_launch_video_config when isaac-sim#8198 made --video take a source that launch_simulation resolves. Remove it there: the default source already records from a headless newton_gl when --viz selects no capture-capable visualizer, which is what Part 5 injected for the Warp frontend by hand. The source-resolution test now pins that --frontend warp resolves like the torch frontend, the Warp test uses the canonical viz:newton_gl source, and the docs and fragment drop the Kit-vs-Newton GL frontend split that no longer exists.
…-recording # Conflicts: # docs/source/concepts/warp_environments.rst
6 of 8 tasks
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Review Map
--videoon the Warp frontend (draft)Summary
--videonow works with--frontend warp(main raisesValueError): the Warp environments driveenv_cfg.video_recorders, and the default--videosource records from main's headless newton_gl, so no Isaac Sim install is needed.Description
Update (2026-10-20): merged
main2dbb6146d75(the default branch, renamed fromdevelop; "main" below means main without this PR, measured ataa9bafef8a0). Main now initializes visualizers insim.reset(), so the Warp environments create their video recorders after the simulation starts, as the stable environments do; the test usesWindowCfg. #8356 fixed the Warp observation manager'shistory_orderrejection on main, so the manager case no longer needs #6646.test_video_recording_warp.py(2) andtest_apply_video_recording.py(30) pass.Update (2026-10-04): merged develop
aa9bafef8a0, which redesigned--video(#8198) and fixed blank headless Newton frames itself. This PR now only lets the Warp environments record; its own visual-shape fix, the frontend-specific visualizer injection and their tests are removed.1. Changes
ManagerBasedEnvWarp,ManagerBasedRLEnvWarpandDirectRLEnvWarpcreate the configured video recorders, advance them once per step outside the recorded stages, and flush them on close. Main ignores the setting.isaaclab_rlno longer rejects--videowith--frontend warpinpre_launch_video_config.--videois rejected.2. Evidence (MEASURED at
3e2eb74dd4b, desk RTX PRO 6000, task defaults: 4096 envs, 150 iterations)Isaac-Cartpole-Direct --frontend warp presets=newton_mjwarp --video,Isaac-Cartpole --frontend warp ...and the torch-frontendIsaac-Cartpole ... --videoeach wrote two 1920x1080 clips of 200 frames whose frames change across the clip; none is flat (minimum per-frame spatial std 51.7–52.5).test_apply_video_recording.py28 passed,test_entrypoints_common.py28 passed, Kit-lanetest_simulation_context_visualizers.py37 passed andtest_video_recording.py3 passed;test_video_recording_warp.pypasses both cases (atb25c6c013f0).3. Dependencies / follow-ups
direct_rl_env_warp.pyandmanager_based_env_warp.py. Whichever of the two merges second keeps both additions.ManagerBasedEnvWarp; no registered task constructs it.Type of change
Release backport
mainScreenshots
Frame 25 of the
Isaac-Cartpole-DirectWarp clip:[ATTACH: /tmp/warp-video-frames/cartpole_direct_f25.png]
Checklist
Docker and GPU tests run on demand. Push the commits you want tested, then
comment
run-cion the pull request.pre-commitchecks withuv run isaaclab --formatsource/<pkg>/changelog.d/for every touched package (do not editCHANGELOG.rstor bump package versions — CI handles that)CONTRIBUTORS.mdor my name already exists there