Repository navigation
Adds tiled camera views to Kit Visualizer and Newton Visualizer - #4
Open
matthewtrepte wants to merge 45 commits into
Open
matthewtrepte wants to merge 45 commits into
matthewtrepte wants to merge 45 commits into
Conversation
# Description <!-- Thank you for your interest in sending a pull request. Please make sure to check the contribution guidelines. Link: https://isaac-sim.github.io/IsaacLab/main/source/refs/contributing.html 💡 Please try to keep PRs small and focused. Large PRs are harder to review and merge. --> Contains a few minor updates and patches to visualizers. - Disable default browser launch to Rerun & Viser visualizers - Add explicit logging urls to Rerun & Viser which appear before simulation loop - Reduce visualizer num sim steps in unit tests - Unskip all visualizer cartpole integration tests - Add focal length to visualizer cfg, for flexibility, align default visualizer cams, and add more consistency to tests - Expand pausing checks for Kit & Rerun tests - Fix frozen robot bodies in newton visualizers with physx - Add a save visualizer test captures mode to visualizer cartpole unit test (disabled by default) - Re-enable visualization markers when no visualizer is launched - Fix Newton Visualizer visualization marker regression - Expose remote desktop config for Viser Visualizer - Align Viser Visualizer docs with other visualizers - Update docs to reflect the changes <!-- As a practice, it is recommended to open an issue to have discussions on the proposed pull request. This makes it easier for the community to keep track of what is being developed or added, and if a given feature is demanded by more than one party. --> ## Type of change <!-- As you go through the list, delete the ones that are not applicable. --> - Bug fix (non-breaking change which fixes an issue) - New feature (non-breaking change which adds functionality) - Documentation update ## Screenshots Please attach before and after screenshots of the change if applicable. <!-- Example: | Before | After | | ------ | ----- | | _gif/png before_ | _gif/png after_ | To upload images to a PR -- simply drag and drop an image while in edit mode and it should upload the image directly. You can then paste that source into the above before/after sections. --> ## Checklist - [ ] I have read and understood the [contribution guidelines](https://isaac-sim.github.io/IsaacLab/main/source/refs/contributing.html) - [ ] I have run the [`pre-commit` checks](https://pre-commit.com/) with `./isaaclab.sh --format` - [ ] I have made corresponding changes to the documentation - [ ] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [ ] I have updated the changelog and the corresponding version in the extension's `config/extension.toml` file - [ ] I have added my name to the `CONTRIBUTORS.md` or my name already exists there <!-- As you go through the checklist above, you can mark something as done by putting an x character in it For example, - [x] I have done this task - [ ] I have not done this task -->
…ling (isaac-sim#5443) # Description Introduces experimental Newton-backend deformable simulation alongside the existing PhysX deformables, refactors deformable APIs to be backend-neutral, and adds the manager-based Franka soft-body lifting environment used to validate two-way coupling. ### Backend-neutral deformable APIs (`isaaclab`) - Moved deformable schemas, materials, spawners, and `DeformableObjectCfg` out of `isaaclab_physx` into `isaaclab.sim` / `isaaclab.assets` so user code imports a single backend-agnostic API. - **Breaking (PhysX):** `isaaclab_physx.sim.DeformableBodyPropertiesCfg`, `DeformableObjectSpawnerCfg`, `DeformableBodyMaterialCfg`, `SurfaceDeformableBodyMaterialCfg`, `spawn_deformable_body_material`, `define/modify_deformable_body_properties` and `isaaclab_physx.assets.DeformableObjectCfg` are now imported from `isaaclab.sim` / `isaaclab.assets`. See `docs/source/migration/migrating_deformables.rst`. - USD spawners now support assets that embed tetrahedral mesh data, with automatic surface-mesh extraction. - Added `pytetwild` dependency for tet-mesh generation. ### Newton manager abstraction (`isaaclab_newton`) - Added deformable registration hooks to Newton cloning + Fabric sync fixes for particle meshes and particle-only scenes. ### Experimental Newton deformables (`isaaclab_contrib.deformable`) - `DeformableObject` (Newton backend), `VBDSolverCfg`, and coupled solver configs `CoupledMJWarpVBDSolverCfg` / `CoupledFeatherstoneVBDSolverCfg` providing one- and two-way rigid–deformable coupling. - New docs: `docs/source/features/newton-physics-integration/using-vbd-solver.rst` (VBD solver tuning + Franka soft-body lift guidance). ### Tasks, demos, tutorials - Added `Isaac-Lift-Soft-Franka-v0` (manager-based), the documented rigid–deformable coupling task. - Updated `scripts/demos/deformables.py`, the `01_assets/run_deformable_object` tutorial, and `00_sim/spawn_prims` to use the backend-neutral API with selectable PhysX or Newton backends. - Added IK + video-record state-machine demo `scripts/environments/state_machine/lift_franka_soft.py`. Continues on isaac-sim#5439 adding VBD solver and coupled MJWarp + VBD solver as newton managers in isaaclab_contrib. Fixes isaac-sim#5285 ## Type of change - New feature (non-breaking change which adds functionality) - Breaking change: Moved deformable schemas, materials, spawners, and `DeformableObjectCfg` out of `isaaclab_physx` into `isaaclab.sim` / `isaaclab.assets` so user code imports a single backend-agnostic API. ## Test plan - [x] `./isaaclab.sh -p -m pytest source/isaaclab/test/sim/test_deformable_backend_split.py` - [x] `./isaaclab.sh -p -m pytest source/isaaclab_physx/test/assets/test_deformable_object.py` - [x] `./isaaclab.sh -p -m pytest source/isaaclab_contrib/test/deformable/` - [x] Run `scripts/demos/deformables.py` against PhysX and Newton backends - [x] Run `Isaac-Lift-Soft-Franka-v0` training for sanity-check rollout ## Checklist - [x] I have read and understood the [contribution guidelines](https://isaac-sim.github.io/IsaacLab/main/source/refs/contributing.html) - [x] I have run the [`pre-commit` checks](https://pre-commit.com/) with `./isaaclab.sh --format` - [x] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [x] I have added tests that prove my fix is effective or that my feature works - [x] I have updated the changelog and the corresponding version in the extension's `config/extension.toml` file - [x] I have added my name to the `CONTRIBUTORS.md` or my name already exists there --------- Signed-off-by: Mike Yan Michelis <46975745+mmichelis@users.noreply.github.com> Signed-off-by: Kelly Guo <kellyg@nvidia.com> Co-authored-by: Copilot <copilot@github.com> Co-authored-by: Donglai <donglaix@nvidia.com> Co-authored-by: Anka Chen <ankachan92@gmail.com> Co-authored-by: Kelly Guo <kellyg@nvidia.com> Co-authored-by: ooctipus <zhengyuz@nvidia.com> Co-authored-by: mingxueg <mingxueg@nvidia.com>
Signed-off-by: matthewtrepte <mtrepte@nvidia.com>
matthewtrepte
pushed a commit
that referenced
this pull request
Sep 17, 2026
…dential (isaac-sim#7741) # Description A job that pulls a public `nvcr.io/nvidia/*` base image fails with `denied: Access Denied`. The runners carry an ambient docker credential for a private NGC organization, and nvcr.io refuses that credential a pull token for a public repository instead of downgrading the request to anonymous. `_lib/setup-docker-config` now takes an optional `base-image-ref`: when the configured credentials are denied that image and anonymous access can read it, the stored nvcr.io credential is dropped from the job's temp config so the pull proceeds anonymously. `_lib/compute-deps-hash` stops swallowing an unreadable base image manifest, which silently dropped the digest from the dependency-cache key. | Before | After | | ------ | ----- | | `load metadata for nvcr.io/nvidia/isaac-sim:6.1.0` fails with `failed to fetch oauth token: denied: Access Denied`, and an unreadable manifest degrades the deps-cache key to a bare tag string with only a `🟠` note | The credential is dropped for nvcr.io only when it is provably the obstacle, the pull proceeds anonymously, and an unreadable manifest fails with a named `::error::` | ## Reproduction 1. Point `.github/workflows/config.yaml` at a public base image: `isaacsim_image_name: nvcr.io/nvidia/isaac-sim` and `isaacsim_image_tag: 6.1.0`. 2. Open a pull request from a fork, so no `NGC_API_KEY` is available and the runner's ambient credential is the only one present. 3. Observe any job that builds the base image, for example `Docker Dependency Licenses Check`: ``` #3 [auth] nvidia/isaac-sim:pull token for nvcr.io #4 [internal] load metadata for nvcr.io/nvidia/isaac-sim:6.1.0 #4 ERROR: failed to authorize: failed to fetch oauth token: denied: Access Denied ERROR: failed to build: failed to solve: failed to fetch oauth token: denied: Access Denied ``` 4. The same step also logs `🔵 Base image ID: nvcr.io/nvidia/isaac-sim:6.1.0` with no `sha256:` suffix, which is the silent digest fallback in `compute-deps-hash`. ## Scope Every workflow on this branch pins the private `nvcr.io/0947644777160149/internal/isaac-sim` image today, where the configured credentials succeed and the fallback stays dormant. This change is the prerequisite that lets a public base image be configured without the failure above; it does not change which image any workflow uses. ## Type of change - Bug fix (non-breaking change which fixes an issue) ## Release backport - [x] <!-- backport-active-release --> Backport this pull request to the active release branch after it merges into `develop` ## Screenshots Not applicable; this changes CI action behavior only. ## Validation The fallback only narrows credentials, never widens them, so each guard was exercised against a stubbed `docker` and a realistic three-registry config (nvcr.io, ECR, Docker Hub): - Public nvcr.io image, credentials denied, anonymous readable: the nvcr.io entry is dropped and the ECR and Docker Hub entries survive, so pushes keep working. - `ubuntu:24.04`, which `kitless-docker.yml` passes: the ref is not an nvcr.io image, so the config is left untouched and the Docker Hub credential keeps its pull-rate budget. - Private internal image readable with credentials: no probe fallback, no change. - Registry 503 rather than an authorization refusal: retried, then a warning, and the credential is kept, so a transient error cannot cost a working credential. - A docker config this action did not create: left unchanged, so a runner-level `DOCKER_CONFIG` is never edited. - `NVCR.IO/...` and `nvcr.io:443/...` resolve to the same registry as `nvcr.io/...`; `nvcr.io.evil.com/...` does not match. - `compute-deps-hash`: a digest-pinned tag such as `latest-develop@sha256:...` is used directly with no network call, a malformed digest pin fails with a named error, an authorization refusal fails immediately, a transient failure is retried 5 times over about 50 seconds, and a warning on stderr during a successful read is no longer concatenated into the digest. - These are committed as `.github/actions/_lib/test_registry_credential_fallback.py` (14 tests, the co-located pattern of `run-package-tests/test_cleanup_docker_storage.py`) and registered in `tools-tests.yml` so they run in CI. - Mutation checks: removing the nvcr.io scope, the exact-digest check, the ownership guard, or the `credHelpers` handling each makes the corresponding test fail, so the suite exercises the intended behavior rather than only the happy path. - `python -m py_compile` on the new helper, `bash -n` on every `run:` block in the five changed files, YAML parse of each, and `codespell` clean. ## Checklist - [x] I have read and understood the [contribution guidelines](https://isaac-sim.github.io/IsaacLab/main/source/refs/contributing.html) - [ ] I have run the [`pre-commit` checks](https://pre-commit.com/) with `./isaaclab.sh --format` — not run; this change touches only `.github/`, validated with `bash -n`, `py_compile`, a YAML parse and `codespell`, and the repository's own `pre-commit` check on this branch - [x] I have made corresponding changes to the documentation — the action's `description` and the new input document the fallback - [x] My changes generate no new warnings - [x] I have added tests that prove my fix is effective or that my feature works - [ ] I have added a changelog fragment under `source/<pkg>/changelog.d/` for every touched package (do **not** edit `CHANGELOG.rst` or bump `extension.toml` — CI handles that) — not applicable; no package is touched - [x] I have added my name to the `CONTRIBUTORS.md` or my name already exists there
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.
Description
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context.
List any dependencies that are required for this change.
Fixes # (issue)
Type of change
Screenshots
Please attach before and after screenshots of the change if applicable.
Checklist
pre-commitchecks with./isaaclab.sh --formatconfig/extension.tomlfileCONTRIBUTORS.mdor my name already exists there