Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions apps/isaaclab.python.headless.kit
Original file line number Diff line number Diff line change
Expand Up @@ -203,6 +203,6 @@ enabled=true # Enable this for DLSS
# set the S3 directory manually to the latest published S3
# note: this is done to ensure prior versions of Isaac Sim still use the latest assets
[settings]
persistent.isaac.asset_root.default = "https://omniverse-content-staging.s3-us-west-2.amazonaws.com/Assets/Isaac/6.1"
persistent.isaac.asset_root.cloud = "https://omniverse-content-staging.s3-us-west-2.amazonaws.com/Assets/Isaac/6.1"
persistent.isaac.asset_root.nvidia = "https://omniverse-content-staging.s3-us-west-2.amazonaws.com/Assets/Isaac/6.1"
persistent.isaac.asset_root.default = "https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/6.1"
persistent.isaac.asset_root.cloud = "https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/6.1"
persistent.isaac.asset_root.nvidia = "https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/6.1"
6 changes: 3 additions & 3 deletions apps/isaaclab.python.headless.rendering.kit
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,6 @@ UJITSO.enabled = true
# set the S3 directory manually to the latest published S3
# note: this is done to ensure prior versions of Isaac Sim still use the latest assets
[settings]
persistent.isaac.asset_root.default = "https://omniverse-content-staging.s3-us-west-2.amazonaws.com/Assets/Isaac/6.1"
persistent.isaac.asset_root.cloud = "https://omniverse-content-staging.s3-us-west-2.amazonaws.com/Assets/Isaac/6.1"
persistent.isaac.asset_root.nvidia = "https://omniverse-content-staging.s3-us-west-2.amazonaws.com/Assets/Isaac/6.1"
persistent.isaac.asset_root.default = "https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/6.1"
persistent.isaac.asset_root.cloud = "https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/6.1"
persistent.isaac.asset_root.nvidia = "https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/6.1"
6 changes: 3 additions & 3 deletions apps/isaaclab.python.kit
Original file line number Diff line number Diff line change
Expand Up @@ -273,6 +273,6 @@ fabricUseGPUInterop = true
# set the S3 directory manually to the latest published S3
# note: this is done to ensure prior versions of Isaac Sim still use the latest assets
[settings]
persistent.isaac.asset_root.default = "https://omniverse-content-staging.s3-us-west-2.amazonaws.com/Assets/Isaac/6.1"
persistent.isaac.asset_root.cloud = "https://omniverse-content-staging.s3-us-west-2.amazonaws.com/Assets/Isaac/6.1"
persistent.isaac.asset_root.nvidia = "https://omniverse-content-staging.s3-us-west-2.amazonaws.com/Assets/Isaac/6.1"
persistent.isaac.asset_root.default = "https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/6.1"
persistent.isaac.asset_root.cloud = "https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/6.1"
persistent.isaac.asset_root.nvidia = "https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/6.1"
6 changes: 3 additions & 3 deletions apps/isaaclab.python.rendering.kit
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,6 @@ UJITSO.enabled = true
# set the S3 directory manually to the latest published S3
# note: this is done to ensure prior versions of Isaac Sim still use the latest assets
[settings]
persistent.isaac.asset_root.default = "https://omniverse-content-staging.s3-us-west-2.amazonaws.com/Assets/Isaac/6.1"
persistent.isaac.asset_root.cloud = "https://omniverse-content-staging.s3-us-west-2.amazonaws.com/Assets/Isaac/6.1"
persistent.isaac.asset_root.nvidia = "https://omniverse-content-staging.s3-us-west-2.amazonaws.com/Assets/Isaac/6.1"
persistent.isaac.asset_root.default = "https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/6.1"
persistent.isaac.asset_root.cloud = "https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/6.1"
persistent.isaac.asset_root.nvidia = "https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/6.1"
6 changes: 3 additions & 3 deletions apps/isaaclab.python.xr.openxr.headless.kit
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,6 @@ UJITSO.geometry = true
UJITSO.enabled = true

[settings]
persistent.isaac.asset_root.default = "https://omniverse-content-staging.s3-us-west-2.amazonaws.com/Assets/Isaac/6.1"
persistent.isaac.asset_root.cloud = "https://omniverse-content-staging.s3-us-west-2.amazonaws.com/Assets/Isaac/6.1"
persistent.isaac.asset_root.nvidia = "https://omniverse-content-staging.s3-us-west-2.amazonaws.com/Assets/Isaac/6.1"
persistent.isaac.asset_root.default = "https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/6.1"
persistent.isaac.asset_root.cloud = "https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/6.1"
persistent.isaac.asset_root.nvidia = "https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/6.1"
6 changes: 3 additions & 3 deletions apps/isaaclab.python.xr.openxr.kit
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,6 @@ UJITSO.enabled = true
# set the S3 directory manually to the latest published S3
# note: this is done to ensure prior versions of Isaac Sim still use the latest assets
[settings]
persistent.isaac.asset_root.default = "https://omniverse-content-staging.s3-us-west-2.amazonaws.com/Assets/Isaac/6.1"
persistent.isaac.asset_root.cloud = "https://omniverse-content-staging.s3-us-west-2.amazonaws.com/Assets/Isaac/6.1"
persistent.isaac.asset_root.nvidia = "https://omniverse-content-staging.s3-us-west-2.amazonaws.com/Assets/Isaac/6.1"
persistent.isaac.asset_root.default = "https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/6.1"
persistent.isaac.asset_root.cloud = "https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/6.1"
persistent.isaac.asset_root.nvidia = "https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/6.1"
2 changes: 2 additions & 0 deletions source/isaaclab/changelog.d/asset-region-profiles.minor.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,5 @@ Changed

* Renamed the China profile selector from ``ISAACSIM_STORAGE_PROFILE`` to
``ISAACSIM_ASSET_REGION_PROFILE``.
* Updated the shipped Kit experiences to use the production asset root and made the ``us`` profile
resolve that canonical setting instead of duplicating the URL in Python.
22 changes: 10 additions & 12 deletions source/isaaclab/isaaclab/utils/assets.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,15 +54,12 @@
# Update this value when the China mirror moves to a new Isaac Sim asset release.
_ISAAC_SIM_ASSET_RELEASE = "6.1"
_CHINA_ASSET_ENDPOINT = "simready-cn.s3.oss-cn-shanghai.aliyuncs.com"
_US_ASSET_ROOT = (
f"https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/{_ISAAC_SIM_ASSET_RELEASE}"
)


class _StorageProfile(TypedDict):
"""OmniClient routing and asset-root values for a named asset region profile."""
"""OmniClient routing and asset-root overrides for a named asset region profile."""

asset_root: str
asset_root: NotRequired[str]
endpoint: NotRequired[str]
bucket: NotRequired[str]
region: NotRequired[str]
Expand All @@ -71,9 +68,8 @@ class _StorageProfile(TypedDict):


_STORAGE_PROFILES: dict[str, _StorageProfile] = {
"us": {
"asset_root": _US_ASSET_ROOT,
},
# The primary profile uses the production root configured by the shipped kit experience.
"us": {},
"china": {
"endpoint": _CHINA_ASSET_ENDPOINT,
"bucket": "simready-cn",
Expand Down Expand Up @@ -184,9 +180,9 @@ def _resolve_asset_root() -> str:
"""Resolve the configured Isaac asset root.

The ``ISAACSIM_ASSET_ROOT`` environment variable follows the public Isaac Sim
asset-root precedence. When it is unset, the asset root from the asset region profile
named by ``ISAACSIM_ASSET_REGION_PROFILE`` is used. The kit file remains the fallback
for kitless use.
asset-root precedence. When it is unset, an asset-root override from the asset region
profile named by ``ISAACSIM_ASSET_REGION_PROFILE`` is used. Profiles without an
override, including ``us``, use the root from the kit file.

Returns:
Value of ``ISAACSIM_ASSET_ROOT`` without its trailing separator, or the value
Expand All @@ -202,7 +198,9 @@ def _resolve_asset_root() -> str:

selected_profile = _selected_storage_profile()
if selected_profile is not None:
return selected_profile[1]["asset_root"]
profile_asset_root = selected_profile[1].get("asset_root")
if profile_asset_root:
return profile_asset_root

return _parse_kit_asset_root()

Expand Down
17 changes: 15 additions & 2 deletions source/isaaclab/test/utils/test_assets.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,12 +55,12 @@ def test_asset_root_uses_china_storage_profile(monkeypatch):


def test_asset_root_uses_us_asset_region_profile(monkeypatch):
"""Test the US asset region profile uses the same public bucket root as Isaac Sim."""
"""Test the US asset region profile uses the root from the shipped experience."""
monkeypatch.delenv("ISAACSIM_ASSET_ROOT", raising=False)
monkeypatch.setenv("ISAACSIM_ASSET_REGION_PROFILE", "us")
monkeypatch.setattr(assets_utils, "_parse_kit_asset_root", lambda: "https://example.com/kit-assets")

assert assets_utils._resolve_asset_root() == assets_utils._US_ASSET_ROOT
assert assets_utils._resolve_asset_root() == "https://example.com/kit-assets"


def test_asset_root_ignores_unknown_storage_profile(monkeypatch, caplog):
Expand Down Expand Up @@ -184,6 +184,19 @@ def test_kit_experience_path_resolves_to_the_shipped_experience():
assert assets_utils._parse_kit_asset_root()


def test_kit_experience_asset_roots_use_production():
"""Test every shipped experience uses the canonical production asset root."""
kit_directory = Path(assets_utils._KIT_EXPERIENCE_PATH).parent
production_root = assets_utils._parse_kit_asset_root()

assert "omniverse-content-production" in production_root
for kit_path in kit_directory.glob("*.kit"):
kit_config = kit_path.read_text(encoding="utf-8")
assert "omniverse-content-staging" not in kit_config
for setting in ("default", "cloud", "nvidia"):
assert f'persistent.isaac.asset_root.{setting} = "{production_root}"' in kit_config


def test_kit_asset_root_prefers_default_setting(tmp_path, monkeypatch):
"""Test the experience-file fallback reads the setting that Isaac Sim resolves."""
kit_file = tmp_path / "isaaclab.python.kit"
Expand Down
Loading