[isaacsim.storage.native] Isaac Sim Native Storage#

Version: 1.6.3

Provides utilities for accessing Isaac Sim assets from Nucleus servers or S3 buckets, including path resolution, asset downloading, and version verification.

Enable Extension#

The extension can be enabled (if not already) in one of the following ways:

Define the next entry as an application argument from a terminal.

APP_SCRIPT.(sh|bat) --enable isaacsim.storage.native

Define the next entry under [dependencies] in an experience (.kit) file or an extension configuration (extension.toml) file.

[dependencies]
"isaacsim.storage.native" = {}

Open the Window > Extensions menu in a running application instance and search for isaacsim.storage.native. Then, toggle the enable control button if it is not already active.

API#

Python API#

class Version(s)#

Bases: Version

Semantic version representation for comparing Isaac Sim assets versions.

A named tuple that parses and stores version strings in the format “major.minor.patch”. Supports comparison operations inherited from the namedtuple base class.

Example:

>>> from isaacsim.storage.native.nucleus import Version
>>>
>>> v1 = Version("1.2.3")
>>> v1.major, v1.minor, v1.patch
(1, 2, 3)
>>> str(v1)
'1.2.3'
build_server_list() List#

Return list with all known servers to check.

Retrieves the list of mounted Nucleus server drives from the persistent settings.

Returns:

List of servers found.

check_server(server: str, path: str, timeout: float = 10.0) bool#

Check a specific server for a path.

Parameters:
  • server – Name of Nucleus server.

  • path – Path to search.

  • timeout – Timeout in seconds. Default value: 10 seconds.

Returns:

True if folder is found.

async check_server_async(
server: str,
path: str,
timeout: float = 10.0,
) bool#

Check a specific server for a path (asynchronous version).

Parameters:
  • server – Name of Nucleus server.

  • path – Path to search.

  • timeout – Timeout in seconds. Default value: 10 seconds.

Returns:

True if folder is found.

create_folder(server: str, path: str) bool#

Create a folder on server.

Parameters:
  • server – Name of Nucleus server.

  • path – Path to folder.

Returns:

True if folder is created successfully.

delete_folder(server: str, path: str) bool#

Remove folder and all of its contents.

Parameters:
  • server – Name of Nucleus server.

  • path – Path to folder.

Returns:

True if folder is deleted successfully.

async download_assets_async(
src: str,
dst: str,
progress_callback,
concurrency: int = 10,
copy_behaviour: omni.client.CopyBehavior = omni.client.CopyBehavior.OVERWRITE,
copy_after_delete: bool = True,
timeout: float = 300.0,
) omni.client.Result#

Download assets from S3 bucket.

Parameters:
  • src – URL of S3 bucket as source.

  • dst – URL of Nucleus server to copy assets to.

  • progress_callback – Callback function to keep track of progress of copy. The callback receives two arguments: current count and total count.

  • concurrency – Number of concurrent copy operations. Default value: 10.

  • copy_behaviour – Behavior if the destination exists. Default value: OVERWRITE.

  • copy_after_delete – True if destination needs to be deleted before a copy. Default value: True.

  • timeout – Timeout in seconds for each copy operation. Default value: 300 seconds.

Returns:

Result of the copy operation.

find_nucleus_server(suffix: str) Tuple[bool, str]#

Attempts to determine best Nucleus server to use based on existing mountedDrives setting.

Deprecated since version This: function is deprecated. Use get_assets_root_path() instead.

Parameters:

suffix – Path to folder to search for. Default value: /Isaac.

Returns:

Tuple of (found, url) where found is True if Nucleus server with suffix is found and url is the URL of the found Nucleus server.

get_assets_root_path(*, skip_check: bool = False) str#

Tries to find the root path to the Isaac Sim assets on a Nucleus server.

Parameters:

skip_check – If True, skip the checking step to verify that the resolved path exists.

Raises:
  • RuntimeError – If the root path setting is not set.

  • RuntimeError – If the root path is not found.

Returns:

URL of Nucleus server with root path to assets folder.

async get_assets_root_path_async(*, skip_check: bool = False) str#

Tries to find the root path to the Isaac Sim assets on a Nucleus server (asynchronous version).

Parameters:

skip_check – If True, skip the checking step to verify that the resolved path exists.

Raises:
  • RuntimeError – If the root path setting is not set.

  • RuntimeError – If the root path is not found.

Returns:

URL of Nucleus server with root path to assets folder.

get_assets_server() str | None#

Tries to find a server with the Isaac Sim assets.

Deprecated since version This: function is deprecated. Use get_server_path() instead.

Returns:

None. This function is deprecated and always returns None.

get_full_asset_path(path: str) str | None#

Tries to find the full asset path on connected servers.

Searches for the asset path first in the default asset root, then in all mounted Nucleus drives.

Parameters:

path – Path of asset from root to verify.

Raises:

RuntimeError – If the root path is not found.

Returns:

URL or full path to assets, or None if assets not found.

async get_full_asset_path_async(path: str) str | None#

Tries to find the full asset path on connected servers (asynchronous version).

Searches for the asset path first in the default asset root, then in all mounted Nucleus drives.

Parameters:

path – Path of asset from root to verify.

Raises:

RuntimeError – If the root path is not found.

Returns:

URL or full path to assets, or None if assets not found.

get_isaac_asset_root_path() str | None#

Get the Isaac Sim asset root path.

Deprecated since version This: function is deprecated. Use get_assets_root_path() instead.

Returns:

None. This function is deprecated and always returns None.

get_nvidia_asset_root_path() str | None#

Get the NVIDIA asset root path.

Deprecated since version This: function is deprecated. Use get_assets_root_path() instead.

Returns:

None. This function is deprecated and always returns None.

get_server_path(suffix: str = '') str | None#

Tries to find a Nucleus server with specific path.

Parameters:

suffix – Path to folder to search for.

Raises:

RuntimeError – If the root path is not found.

Returns:

URL of Nucleus server with path to folder, or None if not found.

async get_server_path_async(suffix: str = '') str | None#

Tries to find a Nucleus server with specific path (asynchronous version).

Parameters:

suffix – Path to folder to search for.

Raises:

RuntimeError – If the root path is not found.

Returns:

URL of Nucleus server with path to folder, or None if not found.

get_url_root(url: str) str#

Get root from URL or path.

Extracts the server root (protocol and netloc) from a full URL.

Parameters:

url – Full http or omniverse path.

Raises:

RuntimeError – If the root path is not found or protocol is unsupported.

Returns:

Root path or URL of the Nucleus server.

Example:

>>> from isaacsim.storage.native import get_url_root
>>>
>>> get_url_root("omniverse://localhost/NVIDIA/Assets")
'omniverse://localhost'
>>> get_url_root("https://example.com/path/to/asset")
'https://example.com'
is_dir(path: str) bool#

Check if path is a folder.

Parameters:

path – Path to folder.

Returns:

True if path is a folder.

Raises:

Exception – If failed to determine if the path is a folder.

async is_dir_async(path: str) bool#

Check if path is a folder.

Parameters:

path – Path to folder.

Returns:

True if path is a folder.

Raises:

Exception – If failed to determine if the path is a folder.

is_file(path: str) bool#

Check if path is a file.

Parameters:

path – Path to file.

Returns:

True if path is a file.

Raises:

Exception – If failed to determine if the path is a file.

async is_file_async(path: str) bool#

Check if path is a file.

Parameters:

path – Path to file.

Returns:

True if path is a file.

Raises:

Exception – If failed to determine if the path is a file.

async list_folder(path: str) Tuple[List, List]#

List files and sub-folders from root path.

Parameters:

path – Path to root folder.

Raises:

Exception – When unable to find files under the path.

Returns:

Tuple containing list of file paths and list of sub-folder paths.

async recursive_list_folder(path: str) List#

Recursively list all files.

Parameters:

path – Path to folder.

Returns:

List of paths to each file.

verify_asset_root_path(
path: str,
) Tuple[omni.client.Result, str]#

Attempts to determine Isaac assets version and check if there are updates.

Reads the version.txt file from the asset root path and compares it against the current Isaac Sim application version to verify compatibility.

Parameters:

path – URL or path of asset root to verify.

Returns:

Tuple containing the result (OK if assets verified) and the version string of the Isaac Sim assets.

Settings#

Other Settings#

The extension changes some settings of the application or other extensions, which are listed in the table below.

Application/extension setting

Description

Value

persistent.isaac.asset_root.default

Default asset root path for Isaac Sim

'https://omniverse-content-staging.s3-us-west-2.amazonaws.com/Assets/Isaac/6.0'

persistent.isaac.asset_root.timeout

Timeout in seconds for asset root path to be resolved

5.0