Skip to content

Commit fa9b1fb

Browse files
committed
Consolidate isaaclab_visualizers changelog into one fragment
AGENTS.md requires one fragment per touched package. Merge the three separate fragments (physx-tiled-fix, contamination-fix, shadow-hand-anymal) into the single canonical mtrepte-golden-image-visualizer-checks.rst and add the np.frombuffer false-pass fix entry.
1 parent 7d5fac9 commit fa9b1fb

4 files changed

Lines changed: 36 additions & 37 deletions

source/isaaclab_visualizers/changelog.d/mtrepte-golden-image-shadow-hand-anymal.rst

Lines changed: 0 additions & 6 deletions
This file was deleted.

source/isaaclab_visualizers/changelog.d/mtrepte-golden-image-visualizer-checks-contamination-fix.rst

Lines changed: 0 additions & 12 deletions
This file was deleted.

source/isaaclab_visualizers/changelog.d/mtrepte-golden-image-visualizer-checks-physx-tiled-fix.rst

Lines changed: 0 additions & 15 deletions
This file was deleted.

source/isaaclab_visualizers/changelog.d/mtrepte-golden-image-visualizer-checks.rst

Lines changed: 36 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,39 @@ Added
33

44
* Added golden image correctness tests for :class:`~isaaclab_visualizers.kit.KitVisualizer` and
55
:class:`~isaaclab_visualizers.newton.NewtonVisualizer` in both viewport and tiled-camera capture
6-
modes, covering PhysX and Newton MJWarp physics backends. Each combination is compared against
7-
a committed reference image using a dual-gate (per-pixel L2 norm + SSIM) system adapted from the
8-
renderer correctness tests, with per-visualizer pixel-diff and SSIM thresholds tuned to each
9-
backend's rendering determinism.
6+
modes, covering PhysX and Newton MJWarp physics backends across four scenes (cartpole, shadow
7+
hand, AnymalD, and franka cloth). Each combination is compared against a committed reference
8+
image using a dual-gate (per-pixel L2 norm + SSIM) system adapted from the renderer correctness
9+
tests, with per-visualizer pixel-diff and SSIM thresholds tuned to each backend's rendering
10+
determinism.
11+
12+
Fixed
13+
^^^^^
14+
15+
* Fixed incomplete tiled camera renders for the PhysX physics backend in golden-image and
16+
tiled-camera integration tests. :class:`~isaaclab_visualizers.newton.NewtonVisualizer` skipped
17+
``_log_camera_sensor_image()`` when the Newton physics state was unavailable (PhysX backend),
18+
leaving all owned tiled cameras with zero renderer updates during physics warmup; only env 0
19+
rendered correctly. The capture helper now pumps ``camera_sensor.update()`` for
20+
``_TILED_CAMERA_SENSOR_WARMUP_UPDATES`` iterations before sampling, matching the warmup already
21+
applied to Kit viewport and Newton viewer paths.
22+
23+
* Fixed :class:`~isaaclab_visualizers.kit.KitVisualizer` silently skipping tiled camera sensor
24+
creation in headless mode even when ``--enable_cameras`` is active. The camera sensor is now
25+
always created when camera rendering is available; only the interactive UI image window is
26+
suppressed in headless mode.
27+
28+
* Fixed cross-test contamination in golden image tests when tiled-camera and viewport captures
29+
run sequentially in the same process. Three sources were addressed: (1) the stale
30+
:class:`~isaaclab_newton.physics.NewtonManager` shadow model from the tiled stage persisting
31+
into the viewport test on the PhysX backend (cleared in the between-test prepare step);
32+
(2) CUDA RNG state drift causing the initial cartpole pole angle to differ between isolated
33+
and suite runs (seed is now applied immediately before ``env.reset()``); and (3) test ordering
34+
in both golden test files reordered to run tiled captures before viewport captures to prevent
35+
RTX render-product state from contaminating tiled camera output.
36+
37+
* Fixed false-passing golden image tests caused by ``np.frombuffer`` returning a read-only view
38+
of the annotator's internal buffer rather than an independent snapshot. When Replicator reuses
39+
the same buffer in place, both the start-frame and end-frame captures reflected the same
40+
(current) buffer contents, producing zero pixel differences. The frame capture helper now calls
41+
``.copy()`` to take an independent snapshot at capture time.

0 commit comments

Comments
 (0)