How to automate Isaac Sim Extension when starting the simulation?

Isaac Sim Version

4.2.0
4.1.0
4.0.0
4.5.0
2023.1.1
2023.1.0-hotfix.1
Other (please specify):

Operating System

Ubuntu 22.04
Ubuntu 20.04
Windows 11
Windows 10
Other (please specify):

GPU Information

  • Model: NVIDIA GeForce RTX 3070
  • Driver Version: 535.183.01

Topic Description

Detailed Description

I’m working on a custom extension for Isaac Sim, guided by this tutorial, and I’d like to automate the process of enabling and running the extension when launching Isaac Sim with Python. Currently, the extension functions correctly within Isaac Sim, but requires manual activation and pressing “Play.” I’d like to integrate this process programmatically by adapting the Stand Alone example from this tutorial. Can you advise on how to achieve this?

Steps to Reproduce

  1. Follow the steps in this tutorial to create an extension, and then copy it into a specific directory, such as ~/Documents/Kit/shared/exts/.
  2. Develop a stand-alone application using the guidelines provided in this tutorial.
  3. Add the following code snippets to include the extension in the application:
from omni.isaac.core.utils.extensions import enable_extension
enable_extension("my_extension") # Extension name

Screenshots

The extension appears in the menu but isn’t opened.

Additional Information

What I’ve Tried

Setting visible=True in extension.py

self._window = ScrollingWindow(title=EXTENSION_TITLE, width=600, height=500, visible=True, dockPreference=ui.DockPreference.LEFT_BOTTOM)

It only shows a blank window, but not initialized.

Additional Context

It would be nice if I could specify the extension path somewhere in the code, so I don’t have to copy or link the extension folder to a pre-defind extension path, such as ~/Documents/Kit/shared/exts/

On the GUI, when you first enable the extension, you can select Autoload (from the checkbox next to the Enable toggle)

Once enabled, I’m wondering if it would do the autoload in headless mode as well.

Thank you, that could work for the GUI, but I want to load it programmatically because I want to write a stand alone program using Isaac Lab.

See step 2.
https://docs.isaacsim.omniverse.nvidia.com/4.2.0/manual_standalone_python.html#enabling-additional-extensions

The additional simulation_app.update() step will do the trick, maybe.