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:

~/.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_extensions

Creating 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: documentation

Step 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_extension

config/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

  1. Launch Isaac Sim

  2. Go to Window → Extensions

  3. Search for your extension name

  4. Toggle it ON

Keep reading