Skip to content

Conversation

@stevfeng
Copy link

@stevfeng stevfeng commented Oct 2, 2025

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

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (existing functionality will not work without user modification)
  • Documentation update

Screenshots

Please attach before and after screenshots of the change if applicable.

Checklist

  • I have read and understood the contribution guidelines
  • I have run the pre-commit checks 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

@github-actions github-actions bot added asset New asset feature or request isaac-sim Related to Isaac Sim team labels Oct 2, 2025
@stevfeng stevfeng requested a review from matthewtrepte October 2, 2025 18:32
@Mayankm96
Copy link
Contributor

How was the asset verification done? Did you run training on a proper set of environments and made sure they all train exactly the same?

Copy link
Contributor

@Mayankm96 Mayankm96 left a comment

Choose a reason for hiding this comment

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

Concerns with how asset generation was done and verifed. This is a big change.

@stevfeng
Copy link
Author

stevfeng commented Oct 7, 2025

Concerns with how asset generation was done and verifed. This is a big change.

How was the asset verification done? Did you run training on a proper set of environments and made sure they all train exactly the same?

Matthew helped me verify all these assets using a benchmark with 2 main metrics: rewards and duration. We verified that all the tasks have similar metrics as before

@matthewtrepte to provide more details as well

@stevfeng stevfeng requested a review from Mayankm96 October 7, 2025 20:29
persistent.isaac.asset_root.default = "https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.0"
persistent.isaac.asset_root.cloud = "https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.0"
persistent.isaac.asset_root.nvidia = "https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.0"
persistent.isaac.asset_root.default = "https://omniverse-content-staging.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1"
Copy link
Contributor

Choose a reason for hiding this comment

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

we shouldn't be updating this on main, probably better to point this PR to release/2.3.0 branch instead

Copy link
Author

Choose a reason for hiding this comment

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

Thanks, updated this to main

import omni.client

NUCLEUS_ASSET_ROOT_DIR = carb.settings.get_settings().get("/persistent/isaac/asset_root/cloud")
NUCLEUS_ASSET_ROOT_DIR = (carb.settings.get_settings().get("/persistent/isaac/asset_root/cloud")
Copy link
Contributor

Choose a reason for hiding this comment

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

why is this change needed?

Copy link
Author

Choose a reason for hiding this comment

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

I think this was from formatting, reverted it back

@kellyguo11
Copy link
Contributor

@matthewtrepte do you have any training curves to show the before/after for the impacted environments?
Have we also ran through all the demo and check scripts that use these assets?

@stevfeng please also run the formatter to address the linter errors.

@Mayankm96 Mayankm96 moved this to In review in Isaac Lab Oct 22, 2025
@stevfeng stevfeng force-pushed the dev/stevfeng/unify_assets branch from eed1139 to 1d3c102 Compare November 13, 2025 19:16
@greptile-apps
Copy link
Contributor

greptile-apps bot commented Nov 13, 2025

Greptile Overview

Greptile Summary

This PR migrates Isaac Lab robot assets from the ISAACLAB_NUCLEUS_DIR path structure to the unified ISAAC_NUCLEUS_DIR path structure, aligning Isaac Lab with Isaac Sim's asset organization.

Key changes:

  • Replaced ISAACLAB_NUCLEUS_DIR references with ISAAC_NUCLEUS_DIR across all robot configurations
  • Updated asset paths to new directory structure (e.g., ANYmal-Canymal_c, FrankaEmikaFrankaRobotics/FrankaEmika)
  • Modified path for Unitree G1 from G1 to G1_23dof subdirectory
  • Updated path for cart double pendulum and humanoid from Classic to IsaacSim subdirectory
  • Removed unused ISAACLAB_NUCLEUS_DIR imports throughout codebase
  • Updated all test files and demo scripts to reflect new paths
  • Maintained backward compatibility import in anymal.py for transition period

Impact:
This is a breaking change for users who may have custom configurations referencing the old paths. However, it standardizes the asset structure and improves maintainability by consolidating Isaac Lab and Isaac Sim asset locations.

Confidence Score: 5/5

  • This PR is safe to merge - it's a well-executed refactoring with consistent path updates across all affected files
  • The changes are systematic and consistent across all files, updating only import statements and string paths. All robot configurations have been updated uniformly, tests have been adapted to match, and the ISAACLAB_NUCLEUS_DIR is still imported where needed for backward compatibility. The refactoring is purely structural with no logical changes.
  • No files require special attention - all changes follow the same pattern of path migration

Important Files Changed

File Analysis

Filename Score Overview
source/isaaclab/isaaclab/sim/spawners/init.py 5/5 Updated documentation examples to use new Isaac Sim asset paths
source/isaaclab_assets/isaaclab_assets/robots/anymal.py 5/5 Migrated ANYmal robot paths from IsaacLab to Isaac Sim directory structure
source/isaaclab_assets/isaaclab_assets/robots/unitree.py 5/5 Updated Unitree robot paths, including G1 moved to G1_23dof subdirectory
source/isaaclab_assets/isaaclab_assets/robots/franka.py 5/5 Updated Franka robot paths to FrankaRobotics/FrankaEmika subdirectory
source/isaaclab/test/sim/test_utils.py 5/5 Updated test file paths and removed unused ISAACLAB_NUCLEUS_DIR import

Sequence Diagram

sequenceDiagram
    participant Dev as Developer
    participant Code as Isaac Lab Code
    participant Assets as Asset Path Resolution
    participant Nucleus as Isaac Sim Nucleus Server
    
    Note over Dev,Nucleus: Asset Path Migration
    
    Dev->>Code: Update robot configurations
    Code->>Code: Replace ISAACLAB_NUCLEUS_DIR with ISAAC_NUCLEUS_DIR
    
    Note over Code: Path structure changes:<br/>IsaacLab/Robots/* → Isaac/Robots/*
    
    Code->>Assets: Request robot asset (e.g., Franka)
    Assets->>Assets: Resolve path from ISAAC_NUCLEUS_DIR
    Note over Assets: New path: Isaac/Robots/FrankaRobotics/FrankaEmika/
    
    Assets->>Nucleus: Load USD file from new location
    Nucleus-->>Assets: Return asset data
    Assets-->>Code: Asset loaded successfully
    
    Code->>Code: Update tests to match new paths
    Code->>Code: Update documentation examples
    
    Note over Dev,Nucleus: Result: Unified asset structure<br/>across Isaac Lab and Isaac Sim
Loading

Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

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

Additional Comments (3)

  1. source/isaaclab_assets/isaaclab_assets/robots/anymal.py, line 47 (link)

    logic: actuator network file still references ISAACLAB_NUCLEUS_DIR while robot USD paths were migrated to ISAAC_NUCLEUS_DIR - verify this actuator network exists at this path in the new asset structure

  2. source/isaaclab_assets/isaaclab_assets/robots/unitree.py, line 32 (link)

    logic: actuator network file still references ISAACLAB_NUCLEUS_DIR while robot USD paths were migrated to ISAAC_NUCLEUS_DIR - verify this exists in the new asset structure

  3. apps/isaaclab.python.kit, line 218-220 (link)

    logic: hardcoded to Isaac 5.1 staging S3 bucket - this will break when Isaac 5.2+ is released unless updated

28 files reviewed, 8 comments

Edit Code Review Agent Settings | Greptile

Comment on lines 218 to 220
persistent.isaac.asset_root.default = "https://omniverse-content-staging.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1"
persistent.isaac.asset_root.cloud = "https://omniverse-content-staging.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1"
persistent.isaac.asset_root.nvidia = "https://omniverse-content-staging.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1"
Copy link
Contributor

Choose a reason for hiding this comment

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

logic: hardcoded to Isaac 5.1 staging S3 bucket - this will break when Isaac 5.2+ is released unless updated

Comment on lines 159 to 161
persistent.isaac.asset_root.default = "https://omniverse-content-staging.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1"
persistent.isaac.asset_root.cloud = "https://omniverse-content-staging.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1"
persistent.isaac.asset_root.nvidia = "https://omniverse-content-staging.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1"
Copy link
Contributor

Choose a reason for hiding this comment

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

logic: hardcoded to Isaac 5.1 staging S3 bucket - this will break when Isaac 5.2+ is released unless updated

Comment on lines 148 to 150
persistent.isaac.asset_root.default = "https://omniverse-content-staging.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1"
persistent.isaac.asset_root.cloud = "https://omniverse-content-staging.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1"
persistent.isaac.asset_root.nvidia = "https://omniverse-content-staging.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1"
Copy link
Contributor

Choose a reason for hiding this comment

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

logic: hardcoded to Isaac 5.1 staging S3 bucket - this will break when Isaac 5.2+ is released unless updated

Comment on lines 91 to 93
persistent.isaac.asset_root.default = "https://omniverse-content-staging.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1"
persistent.isaac.asset_root.cloud = "https://omniverse-content-staging.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1"
persistent.isaac.asset_root.nvidia = "https://omniverse-content-staging.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1"
Copy link
Contributor

Choose a reason for hiding this comment

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

logic: hardcoded to Isaac 5.1 staging S3 bucket - this will break when Isaac 5.2+ is released unless updated

Comment on lines 62 to 64
persistent.isaac.asset_root.default = "https://omniverse-content-staging.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1"
persistent.isaac.asset_root.cloud = "https://omniverse-content-staging.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1"
persistent.isaac.asset_root.nvidia = "https://omniverse-content-staging.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1"
Copy link
Contributor

Choose a reason for hiding this comment

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

logic: hardcoded to Isaac 5.1 staging S3 bucket - this will break when Isaac 5.2+ is released unless updated

@stevfeng stevfeng force-pushed the dev/stevfeng/unify_assets branch from 1d3c102 to e631e17 Compare November 13, 2025 19:21
Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

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

Additional Comments (3)

  1. source/isaaclab/test/sim/test_utils.py, line 153-156 (link)

    logic: version check looks for "4.5" string in path but may not work correctly with Isaac Sim 5.1 staging URLs - the path might contain "5.1" instead

  2. source/isaaclab/test/sim/test_schemas.py, line 115-116 (link)

    logic: hardcoded version replacement from 4.5 to 5.0 will fail with Isaac Sim 5.1+ - this logic needs to be updated or removed for compatibility with the new unified asset paths

  3. source/isaaclab/test/sim/test_schemas.py, line 141-142 (link)

    logic: hardcoded version replacement from 4.5 to 5.0 will fail with Isaac Sim 5.1+ - this logic needs to be updated or removed for compatibility with the new unified asset paths

22 files reviewed, 3 comments

Edit Code Review Agent Settings | Greptile

Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

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

22 files reviewed, no comments

Edit Code Review Agent Settings | Greptile

@stevfeng stevfeng requested a review from kellyguo11 November 14, 2025 20:00
@stevfeng
Copy link
Author

@matthewtrepte @kellyguo11 could you please review the latest branch when you get a chance and hopefully we can get this merged soon. Thank you :)

Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

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

22 files reviewed, no comments

Edit Code Review Agent Settings | Greptile

@stevfeng stevfeng force-pushed the dev/stevfeng/unify_assets branch from d3f5754 to 1084d7e Compare December 8, 2025 20:43
Signed-off-by: Ji Yuan Feng <168472921+stevfeng@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

asset New asset feature or request isaac-sim Related to Isaac Sim team

Projects

Status: In review

Development

Successfully merging this pull request may close these issues.

3 participants