[omni.kit.loop-isaac] Isaac Loop Runner#

Version: 1.5.0

Custom Loop Runner for Isaac Sim

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 omni.kit.loop-isaac

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

[dependencies]
"omni.kit.loop-isaac" = {}

Open the Window > Extensions menu in a running application instance and search for omni.kit.loop-isaac. Then, toggle the enable control button if it is not already active.

API#

Python API#


Isaac loop bindings

class RunLoopRunner#

Bases: pybind11_object

get_manual_mode(
self: omni.kit.loop._loop.RunLoopRunner,
name: str = '',
) bool#

Gets the manual mode state for the run loop.

Parameters:

name (str) – The name of the run loop. If name is an empty string, returns the state of the first active run loop.

Returns:

True if manual mode is enabled, false otherwise.

Return type:

bool

get_manual_step_size(
self: omni.kit.loop._loop.RunLoopRunner,
name: str = '',
) float#

Gets the time step size (dt) for manual stepping mode.

Parameters:

name (str) – The name of the run loop. If name is an empty string, returns the step size of the first active run loop.

Returns:

The time step size in seconds.

Return type:

double

set_manual_mode(
self: omni.kit.loop._loop.RunLoopRunner,
enabled: bool = True,
name: str = '',
) None#

Enables or disables manual stepping mode for the run loop.

Parameters:
  • enabled (bool) – Set to true to enable manual mode, false to disable.

  • name (str) – The name of the run loop. If name is an empty string, all active run loops are set.

set_manual_step_size(
self: omni.kit.loop._loop.RunLoopRunner,
dt: float = 0.01667,
name: str = '',
) None#

Sets the time step size (dt) for manual stepping mode.

Parameters:
  • dt (double) – The time step size in seconds.

  • name (str) – The name of the run loop. If name is an empty string, all active run loops are set.

set_next_simulation_time(
self: omni.kit.loop._loop.RunLoopRunner,
time: float = 0.0,
name: str = '',
) None#

Sets the next simulation time to be picked up by the run loop.

Parameters:
  • time (double) – The simulation time value in seconds. Use negative value to reset to frame-based time.

  • name (str) – The name of the run loop. If name is an empty string, all active run loops are set.

acquire_loop_interface(
plugin_name: str = None,
library_path: str = None,
) omni.kit.loop._loop.RunLoopRunner#
release_loop_interface(
arg0: omni.kit.loop._loop.RunLoopRunner,
) None#

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

app.runLoopsGlobal.syncToPresent

Do not sync threads to the present thread.

False

app.runLoops.main.rateLimitEnabled

Set to true to enable rate limiting for the main run loop.

True

app.runLoops.main.rateLimitFrequency

Rate-limit frequency in Hz for the main run loop.

120

app.runLoops.main.rateLimitUseBusyLoop

Set to true to use a busy loop for the main run loop.

False

app.runLoops.present.rateLimitEnabled

Set to true to enable rate limiting for the present run loop.

True

app.runLoops.present.rateLimitFrequency

Rate-limit frequency in Hz for the present run loop.

60

app.runLoops.present.rateLimitUseBusyLoop

Set to true to use a busy loop for the present run loop.

False

app.runLoops.rendering_0.rateLimitEnabled

Set to true to enable rate limiting for the rendering run loop.

True

app.runLoops.rendering_0.rateLimitFrequency

Rate-limit frequency in Hz for the rendering run loop.

120

app.runLoops.rendering_0.rateLimitUseBusyLoop

Set to true to use a busy loop for the rendering run loop.

False