- Kautilya's Newsletter
- Posts
- Custom Extension Guide in Isaac Sim 4.5 (and above)
Custom Extension Guide in Isaac Sim 4.5 (and above)

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
Reply