
Overview
Isaac Sim extensions allow you to add custom functionality, UI elements, and simulations to the Isaac Sim environment. This guide covers everything from basic setup to advanced physics-based simulations.
Prerequisites
NVIDIA Isaac Sim 4.5 installed
Basic Python knowledge
Understanding of USD (Universal Scene Description) basics
Extension Locations
Isaac Sim searches for extensions in several locations:
User Data Directory (Recommended for Development)
~/.local/share/ov/data/Kit/Isaac-Sim Full/4.5/exts/3/Survives Isaac Sim updates
Automatically detected
User-specific extensions
Application Extensions
~/isaacsim/exts/Core Isaac Sim extensions
Gets replaced during updates
Don't modify directly
Custom Project Directory
~/Projects/isaac_extensions/~/isaacsim/isaac-sim.sh --ext-folder ~/Projects/isaac_extensionsCreating a Custom Extension
Step 1: Basic Extension Structure
extension_name/
├── config/
│ └── extension.toml # Extension metadata
├── extension_name/ # Python module (same name as root)
│ ├── __init__.py # Module initialization
│ └── extension.py # Main extension code
├── data/ # Optional: assets, icons
└── docs/ # Optional: documentationStep 2: Create a Test Extension (Kauti Extension)
cd ~/.local/share/ov/data/Kit/Isaac-Sim\ Full/4.5/exts/3/Create extension structure
mkdir -p kauti_extension/{config,kauti_extension,data,docs}
cd kauti_extensionconfig/extension.toml
[package]
version = "1.0.0"
title = "Kauti Extension Test"
description = "A test extension to verify Isaac Sim extension setup"
authors = ["Your Name"]
category = "Example"
keywords = ["test", "example", "tutorial"]
[dependencies]
"omni.kit.uiapp" = {}
[[python.module]]
name = "kauti_extension"kauti_extension/__init__.py
"""Kauti Extension Test for Isaac Sim"""
from .extension import KautiExtensionTest
__all__ = ["KautiExtensionTest"]kauti_extension/extension.py
import omni.ext
import omni.ui as ui
import carb
class KautiExtensionTest(omni.ext.IExt):
def on_startup(self, ext_id):
carb.log_info("[Kauti Extension] Starting up...")
self._window = ui.Window("Kauti Extension Test", width=300, height=200)
with self._window.frame:
with ui.VStack(spacing=5):
ui.Label("Extension Loaded Successfully!",
style={"font_size": 18, "color": 0xFF00FF00})
ui.Button("Click Me", height=40).set_clicked_fn(
lambda: carb.log_info("Button clicked!")
)
def on_shutdown(self):
carb.log_info("[Kauti Extension] Shutting down...")
if self._window:
self._window.destroy()Step 3: Enable the New Extension
Launch Isaac Sim
Go to Window → Extensions
Search for your extension name
Toggle it ON