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

Version: 1.0.6

Isaac Sim Native Storage

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

get_url_root(url: str) str#

Get root from URL or path. :param url: full http or omniverse path :type url: str

Raises:

RuntimeError – if the root path is not found.

Returns:

Root path or URL or Nucleus server

Return type:

str

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

Create a folder on server

Parameters:
  • server (str) – Name of Nucleus server

  • path (str) – Path to folder

Returns:

True if folder is created successfully

Return type:

bool

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

Remove folder and all of its contents

Parameters:
  • server (str) – Name of Nucleus server

  • path (str) – Path to folder

Returns:

True if folder is deleted successfully

Return type:

bool

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

Download assets from S3 bucket

Parameters:
  • src (str) – URL of S3 bucket as source

  • dst (str) – URL of Nucleus server to copy assets to

  • progress_callback – Callback function to keep track of progress of copy

  • concurrency (int) – Number of concurrent copy operations. Default value: 3

  • copy_behaviour (omni.client._omniclient.CopyBehavior) – Behavior if the destination exists. Default value: OVERWRITE

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

  • timeout (float) – Default value: 300 seconds

Returns:

Result of copy

Return type:

Result (omni.client._omniclient.Result)

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

Check a specific server for a path

Parameters:
  • server (str) – Name of Nucleus server

  • path (str) – Path to search

  • timeout (float) – Default value: 10 seconds

Returns:

True if folder is found

Return type:

bool

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

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

Parameters:
  • server (str) – Name of Nucleus server

  • path (str) – Path to search

  • timeout (float) – Default value: 10 seconds

Returns:

True if folder is found

Return type:

bool

build_server_list() List#

Return list with all known servers to check

Returns:

List of servers found

Return type:

all_servers (List)

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

Attempts to determine best Nucleus server to use based on existing mountedDrives setting and the default server specified in json config at “/persistent/isaac/asset_root/”. Call is blocking

Parameters:

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

Returns:

True if Nucleus server with suffix is found url (str): URL of found Nucleus

Return type:

bool

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

Tries to find a Nucleus server with specific path.

Parameters:

suffix (str) – Path to folder to search for.

Raises:

RuntimeError – if the root path is not found.

Returns:

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

Return type:

url (str)

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

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

Parameters:

suffix (str) – Path to folder to search for.

Raises:

RuntimeError – if the root path is not found.

Returns:

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

Return type:

url (str)

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

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

Parameters:

path (str) – URL or path of asset root to verify

Returns:

OK if Assets verified ver (str): Version of Isaac Sim assets

Return type:

omni.client.Result

get_full_asset_path(path: str) str | None#

Tries to find the full asset path on connected servers

Parameters:

path (str) – Path of asset from root to verify

Raises:

RuntimeError – if the root path is not found.

Returns:

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

Return type:

url (str)

async get_full_asset_path_async(path: str) str | None#

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

Parameters:

path (str) – Path of asset from root to verify

Raises:

RuntimeError – if the root path is not found.

Returns:

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

Return type:

url (str)

get_nvidia_asset_root_path() str | None#
get_isaac_asset_root_path() str | None#
get_assets_root_path() str | None#

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

Raises:

RuntimeError – if the root path is not found.

Returns:

url (str): URL of Nucleus server with root path to assets folder. Returns None if Nucleus server not found.

Return type:

Union[str, None]

async get_assets_root_path_async() str | None#

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

Raises:

RuntimeError – if the root path is not found.

Returns:

URL of Nucleus server with root path to assets folder. Returns None if Nucleus server not found.

Return type:

url (str)

get_assets_server() str | None#

Tries to find a server with the Isaac Sim assets

Returns:

URL of Nucleus server with the Isaac Sim assets

Returns None if Nucleus server not found.

Return type:

url (str)

async is_dir_async(path: str) bool#

Check if path is a folder

Parameters:

path (str) – Path to folder

Returns:

True if path is a folder

Return type:

bool

is_dir(path: str) bool#

Check if path is a folder

Parameters:

path (str) – Path to folder

Returns:

True if path is a folder

Return type:

bool

async is_file_async(path: str) bool#

Check if path is a file

Parameters:

path (str) – Path to file

Returns:

True if path is a file

Return type:

bool

is_file(path: str) bool#

Check if path is a file

Parameters:

path (str) – Path to file

Returns:

True if path is a file

Return type:

bool

async recursive_list_folder(path: str) List#

Recursively list all files

Parameters:

path (str) – Path to folder

Returns:

List of path to each file

Return type:

paths (List)

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

List files and sub-folders from root path

Parameters:

path (str) – Path to root folder

Raises:

Exception – When unable to find files under the path.

Returns:

List of path to each file dirs (typing.List): List of path to each sub-folder

Return type:

files (List)

Settings#

Other Settings#

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

Application/extension setting

Value

persistent.isaac.asset_root.default

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

persistent.isaac.asset_root.timeout

5.0