Skip to main content

isaac-sim-remote

Localhost IPC client for a trusted Isaac Sim python_server (127.0.0.1:8226). Use for live stage iteration; intentional full Kit/Python surface on loopback only.

Source facts

Repository
isaac-sim/IsaacSim
Last source activity
September 18, 2026 at 16:05
Detected SKILL.md language
English
Stars
4,243
Forks
571

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
23 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
isaac-sim-remote
description
Localhost IPC client for a trusted Isaac Sim python_server (127.0.0.1:8226). Use for live stage iteration; intentional full Kit/Python surface on loopback only.
license
Apache-2.0
metadata
{"author":"Hammad Mazhar <info@nvidia.com>"}
# Isaac Sim Remote ## Purpose Drive an already-running Isaac Sim over the code-editor TCP socket so agents can iterate on stages, prims, physics, and screenshots without restarting the app. ## Security This skill is a **local developer control plane**, not a remote-execution service. - **Bind**: clients default to `127.0.0.1:8226`. Do not publish that port off-host. - **Trust boundary**: equal to the OS user who launched Isaac Sim on this machine. - **Design (intentional)**: `isaacsim_send.py` delivers Python source to the local code-editor server; `execute_command.py` dispatches any name already present in `omni.kit.commands.get_commands()` after an identifier check and audit log. An allowlist would defeat live Kit iteration — treat registry-wide dispatch as the product, not a hole. - **Mitigations**: loopback-only default; `--dry-run` prints payloads without send; CLI `--arg` values use `ast.literal_eval` (literals only). ## Prerequisites - Built Isaac Sim (`$ISAAC_SIM_DIR` or `_build/linux-x86_64/release`). - NVIDIA GPU with a current driver (`nvidia-smi`). - Shell env contract from `isaac-sim-orchestrator`: `$ISAAC_SIM_DIR`, `$ISAAC_LAB_DIR`, `$WORKSPACE_DIR`. ## Limitations - Requires Isaac Sim launched with the Python code-editor server enabled. - Remote scripts cannot import arbitrary repo modules unless paths are injected. ## Troubleshooting | Error / symptom | Cause | Solution | |---|---|---| | Connection refused on 8226 | Python server disabled | Launch Isaac Sim with code-editor server enabled | | `NameError` in remote cell | Module not on `sys.path` | Inline helpers or inject repo paths before import | | Stale stage state | Prior remote edits | Reset prims or reopen stage before repro steps | Related: `debug-with-local-kit` (when behavior depends on a Kit-from-source build), `profile-isaac-sim` (to attach Tracy to the running process), `isaac-sim-validator` (final QA gate on any rendered output). Upstream `isaac-sim-ui` (menu/widget OmniUIQuery automation) and `isaac-sim-recording` (cursor tracking, tutorial video capture) are not imported. The inline UI patterns here (Play-button click via `OmniUIQuery`, full-app vs viewport screenshots) cover the common cases. Every helper in `scripts/` is invoked through `scripts/isaacsim_send.py`. From agent runtimes that expose skill execution helpers, call e.g. `run_script("scripts/app_screenshot.py", args=["--help"])`; from a built tree run the file with `./python.sh` (Linux) / `python.bat` (Windows) under `_build/*/release`. Command recipes live in [`references/workflows.md`](references/workflows.md). ## Available Scripts | Script | Purpose | Arguments | |---|---|---| | `scripts/app_screenshot.py` | App screenshot | see script --help | | `scripts/camera_control.py` | Camera control | see script --help | | `scripts/capture_annotator.py` | Capture annotator | see script --help | | `scripts/console_log.py` | Console log | see script --help | | `scripts/execute_command.py` | Dispatch a registered `omni.kit.commands` entry (loopback trust; see Security) | see script --help | | `scripts/health_check.py` | Health check | see script --help | | `scripts/isaacsim_send.py` | Localhost python_server IPC client (`--dry-run` supported) | CLI flags via argparse (see script --help) | | `scripts/open_stage.py` | Open stage | see script --help | | `scripts/prim_properties.py` | Prim properties | see script --help | | `scripts/prim_transform.py` | Prim transform | see script --help | | `scripts/select_prim.py` | Select prim | see script --help | | `scripts/set_asset_root.py` | Set asset root | see script --help | | `scripts/simulation_control.py` | Simulation control | see script --help | | `scripts/stage_info.py` | Stage info | see script --help | | `scripts/verify_asset.py` | Verify asset | see script --help | | `scripts/viewport_screenshot.py` | Viewport screenshot | see script --help | | `scripts/viewport_video.py` | Viewport video | see script --help | ## Launching Isaac Sim ```bash cd _build/linux-x86_64/release bash isaac-sim.sh --no-window --no-ros-env \ --enable isaacsim.code_editor.python_server ``` Wait for `app ready`. TCP server: `127.0.0.1:8226`. Use `--enable isaacsim.code_editor.python_server` (not carb `/enabled=true`). Full launch variants and health/asset/send/screenshot/control workflows: [`references/workflows.md`](references/workflows.md). Pitfalls: [`references/pitfalls.md`](references/pitfalls.md). APIs: [`references/api-reference.md`](references/api-reference.md). ## Important Notes - **Lighting in headless mode**: No lights = black image. Always add a `DomeLight` with intensity 1000–5000. - **Renderer warm-up**: After new stage, call `await app_utils.update_app_async(steps=120)` before rendering. - **Connection errors**: Ensure Isaac Sim shows `app ready` and python_server is `--enable`d. - **Server hangs**: Crashed examples can wedge the server. Restart Isaac Sim. Use `health_check.py` to verify. - **Assets not found**: Configure S3 fallback with `set_asset_root.py`.
View on GitHub