Skip to content

Fix environment browser preview assets - #7822

Merged
kellyguo11 merged 2 commits into
isaac-sim:developfrom
StafaH:mhaiderbhai/fix-task-preview-assets-s3
Sep 16, 2026
Merged

kellyguo11 merged 2 commits into
isaac-sim:developfrom
StafaH:mhaiderbhai/fix-task-preview-assets-s3

Conversation

@StafaH

@StafaH StafaH commented Sep 15, 2026

Copy link
Copy Markdown
Collaborator

Description

The environment browser currently requests preview images from flattened documentation paths that do not exist. Its MP4 previews are also Git LFS objects, so multi-version documentation deployments can serve pointer text instead of decodable video.

This change:

  • serves task preview images from the Isaac Sim S3-backed download host while preserving their tasks/... paths;
  • removes the 93 task preview JPEGs from the repository;
  • resolves the four existing MP4 previews from their actual _static/tasks/previews directory;
  • falls back to the task image when a preview video cannot be loaded or decoded; and
  • remembers failed video URLs so later control changes do not expose the broken video again.

For example, the Cartpole fallback now loads from:

https://download.isaacsim.omniverse.nvidia.com/isaaclab/images/tasks/classic/cartpole.jpg

The S3 objects must be uploaded under isaaclab/images/tasks/ before this PR is ready to merge.

Supersedes #7814.

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • Documentation update

Validation

  • node --check docs/source/_static/css/environment-browser.js
  • uv run --extra test python -m pytest --noconftest tools/test/test_environ_docs.py (35 passed)
  • uv run --isolated --extra dev -- make -C docs current-docs (succeeded without warnings)
  • uv run isaaclab -f (all hooks passed)
  • Verified the upload archive contains all 93 task preview JPEGs and all 65 unique browser image paths

Checklist

  • I have read and understood the contribution guidelines
  • I have run the pre-commit checks
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • Existing environment documentation tests pass
  • No source package was touched, so no changelog fragment is required
  • My name already exists in CONTRIBUTORS.md

kellyguo11 and others added 2 commits September 15, 2026 03:49
Serve task preview images from the Isaac Sim download host and remove the repository copies to avoid bundling them into each documentation version.
@github-actions github-actions Bot added bug Something isn't working documentation Improvements or additions to documentation labels Sep 15, 2026
@kellyguo11

Copy link
Copy Markdown
Contributor

run-ci

@isaaclab-bot isaaclab-bot Bot added ci:run-docker Trigger the on-demand Docker and GPU CI workflow and removed ci:run-docker Trigger the on-demand Docker and GPU CI workflow labels Sep 16, 2026
@StafaH
StafaH marked this pull request as ready for review September 16, 2026 10:33
@StafaH
StafaH requested a review from a team September 16, 2026 10:33
@greptile-apps

greptile-apps Bot commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

RetriggerConfidence Score: 4/5

The PR is not safe to merge until task-card thumbnails are migrated from the deleted local assets to the external image host.

Findings

  1. P1 Task thumbnails use deleted assets

Summary

This PR moves environment-browser preview images to the Isaac Sim download host, corrects local MP4 paths, and adds image fallback behavior for failed videos. It also removes the repository copies of task-preview JPEGs.

  • The selected-task preview now preserves its complete tasks/... path on the external host.
  • MP4 previews resolve from _static/tasks/previews and failed URLs are remembered for the page session.
  • Task-card thumbnails were not migrated to the external host and consequently still reference the deleted local images.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[Task selected] --> B[Resolve selected preview through external image host]
    A --> C[Refresh task card]
    C --> D[Resolve thumbnail under local _static/tasks]
    D --> E[Deleted JPEG]
    E --> F[Broken task-card thumbnail]
    A --> G{Supported video configuration?}
    G -->|Yes| H[Load _static/tasks/previews MP4]
    H -->|Media error| B
    G -->|No| B
Loading

Reviews (1) · Last reviewed commit: "Host task preview images remotely"

const videoUrl = videoName
? new URL(`../../_static/tasks/previews/${videoName}`, window.location.href).href
: undefined;
previewImage.src = new URL(previewImageFor(selectedTask()), previewImageBaseUrl).href;

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.

P1 Task thumbnails use deleted assets

The selected-task preview now uses the external image host, but refreshCard() still loads every task-card image from the local _static directory. Because this PR deletes those tasks/**/*.jpg files, cards request missing assets such as _static/tasks/classic/cartpole.jpg and display broken thumbnails. Resolve the card images against previewImageBaseUrl as well.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Addressed in #7849 by routing task-card thumbnails through the shared preview image URL resolver.

@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 correctly redirects task preview images to the download host, fixes MP4 paths, and adds memoized video fallback behavior, but it also redirects one non-task image mapping to an S3 path outside the stated upload scope.

  • Design and architecture: Externalizing the task JPEGs avoids repository and Git LFS deployment issues. However, the shared base-URL rewrite assumes every previewImageFor result belongs under the migrated S3 hierarchy, while Lift-Soft-Franka still maps to newton/franka-mjwarp-vbd-coupling.png.
  • API: The preview markup and JavaScript selectors remain compatible, the default cartpole source matches the new hosted location, and the RST reference to a deleted task image was updated. No Python or extension public API is changed.
  • Implementation: The corrected MP4 directory and failed-video memoization are internally consistent. Before merge, preserve local resolution for the newton/... preview or ensure that asset is uploaded at the newly generated isaaclab/images/newton/... URL; the stated isaaclab/images/tasks/ upload does not cover it.

Minor fixes needed. Posted 1 actionable finding inline.

Automated review; human maintainers own approval decisions.

const videoUrl = videoName
? new URL(`../../_static/tasks/previews/${videoName}`, window.location.href).href
: undefined;
previewImage.src = new URL(previewImageFor(selectedTask()), previewImageBaseUrl).href;

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.

🟡 Warning · Implementation — Non-task preview path redirected to download host

previewImageFor does not only return tasks/... values: the Lift-Soft-Franka rule returns newton/franka-mjwarp-vbd-coupling.png, and that asset is not among the files deleted here. Prefixing every result with previewImageBaseUrl sends it to isaaclab/images/newton/..., outside the isaaclab/images/tasks/ upload scope stated for this change, so that preview can 404. Resolve non-tasks/ paths locally, or confirm the object is uploaded.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Addressed in #7849 by preserving local _static resolution for non-task preview images.

@kellyguo11
kellyguo11 merged commit 3326ba9 into isaac-sim:develop Sep 16, 2026
54 checks passed
kellyguo11 pushed a commit that referenced this pull request Sep 16, 2026
## Description

Follow-up to #7822 that addresses the two review comments left on the
merged PR:

- resolve task-card thumbnails from the external task-image host instead
of the deleted local `_static/tasks` assets; and
- keep non-task preview images, such as `Lift-Soft-Franka`, on their
local `_static` paths.

Both the selected-task preview and task-card thumbnails now use one
shared URL resolver.

Addresses:
- #7822 (comment)
- #7822 (comment)

## Type of change

- Bug fix (non-breaking change which fixes an issue)
- Documentation update

## Release backport

- [ ] <!-- backport-active-release --> Backport this pull request to the
active release branch after it merges into `develop`

## Validation

- `node --check docs/source/_static/css/environment-browser.js`
- `uv run --extra test python -m pytest --noconftest
tools/test/test_environ_docs.py` (35 passed)
- `uv run --isolated --extra dev -- make -C docs current-docs`
(succeeded without warnings)
- Headless Chrome verified Cartpole resolves to the external task-image
URL and `Lift-Soft-Franka` resolves to the local built `_static/newton`
image.
- `uv run isaaclab -f` (all applicable hooks passed; changelog
validation passed separately against `upstream/develop` because the fork
base is stale)

## Checklist

- [x] I have read and understood the contribution guidelines
- [x] I have run the pre-commit checks
- [x] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [x] Existing environment documentation tests pass
- [x] No source package was touched, so no changelog fragment is
required
- [x] My name already exists in `CONTRIBUTORS.md`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants