Agent Skills › isaac-sim/IsaacSim › isaac-sim-headless-deployment

isaac-sim-headless-deployment

GitHub

指导在服务器或CI环境中以无头模式运行Isaac Sim,支持批量仿真、物理计算及自动化数据生成。涵盖启动参数配置、脚本调用及常见问题排查,适用于无人值守场景。

.claude/skills/isaac-sim-headless-deployment/SKILL.md isaac-sim/IsaacSim

触发场景

需要无窗口运行Isaac Sim进行批量仿真 配置CI环境中的纯物理测试任务 解决Isaac Sim在无头模式下的渲染或加载问题

安装

npx skills add isaac-sim/IsaacSim --skill isaac-sim-headless-deployment -g -y
更多选项

非标准路径

npx skills add https://github.com/isaac-sim/IsaacSim/tree/develop/.claude/skills/isaac-sim-headless-deployment -g -y

不安装直接使用

npx skills use isaac-sim/IsaacSim@isaac-sim-headless-deployment

指定 Agent (Claude Code)

npx skills add isaac-sim/IsaacSim --skill isaac-sim-headless-deployment -a claude-code -g -y

安装 repo 全部 skill

npx skills add isaac-sim/IsaacSim --all -g -y

预览 repo 内 skill

npx skills add isaac-sim/IsaacSim --list

SKILL.md

Frontmatter
{
    "name": "isaac-sim-headless-deployment",
    "license": "Apache-2.0",
    "metadata": {
        "author": "Renato Gasoto <info@nvidia.com>"
    },
    "description": "Run a built Isaac Sim 6 headless with --no-window and the renderer disabled. Use for batch SDG jobs, physics-only CI, or unattended server runs."
}

Isaac Sim Headless Usage (--no-window)

Purpose

Launch Isaac Sim without a window for batch simulation, automated data generation, and server workloads using supported CLI flags and SimulationApp patterns.

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

  • Targets Isaac Sim 6 / Kit 110 unless a section states otherwise.
  • Does not replace official NVIDIA documentation for unsupported edge cases.

Troubleshooting

Error / symptom Cause Solution
Extension or import not found Wrong $ISAAC_SIM_DIR or stale build Point env vars at _build/linux-x86_64/release or rebuild
Black or empty frames Missing lights or non-RTX render mode Add dome/key light; confirm RTX / PathTracing settings
Hang on stage load or first render MDL compile or oversized stage Follow isolation steps in isaac-sim-troubleshooting

This skill covers headless usage of a built or installed Isaac Sim. It does not cover Docker images, container orchestration, or CI/CD wiring — those live with the deployment infrastructure that wraps Isaac Sim, not in this skill.

Available Scripts

Script Purpose Arguments
scripts/batch_simulation.py Headless batch simulation loop for Isaac Sim (Kit 110) see script --help
scripts/ci_physics_nightly.sh CI physics-only nightly runner via python.sh or Kit CLI <test_script.py> [args...]

Running scripts

From agent runtimes that expose skill execution helpers, invoke helpers with run_script():

run_script("scripts/batch_simulation.py", args=["--help"])

From a built Isaac Sim tree, run the same file with ./python.sh (Linux) or python.bat (Windows) from _build/*/release, or execute shell helpers directly when they do not require the simulator.

Launch modes

1. Headed (Default)

./isaac-sim.sh
# Launches isaacsim.exp.full.kit with full UI

2. Headless with Rendering

For headless GPU rendering (generates images without a window):

# Native headless — uses EGL/Vulkan offscreen
./isaac-sim.sh --no-window

# With explicit display (required on some systems)
DISPLAY=:0 ./isaac-sim.sh --no-window

3. Headless No Rendering

For physics-only simulation (no viewport, no rendering):

./isaac-sim.sh --no-window --/app/renderer/enabled=false

4. Python Standalone Scripts

Run simulation logic from a standalone Python script:

./python.sh my_simulation.py
# Uses Isaac Sim's Python environment with all extensions available

The script controls headless behavior via the SimulationApp config (see Batch simulation pattern below) — python.sh does not need a --no-window flag.

5. Kit CLI with Script Execution

# Default — full Isaac Sim experience with rendering enabled
./kit/kit apps/isaacsim.exp.full.kit --exec "my_script.py"

# Headless physics-only batch
./kit/kit apps/isaacsim.exp.full.kit \
    --no-window \
    --/app/renderer/enabled=false \
    --exec "physics_batch.py"

Key CLI Flags

Flag Description
--no-window Disable window creation (headless)
--/app/renderer/enabled=false Disable rendering entirely
--/app/window/width=W Set viewport width
--/app/window/height=H Set viewport height
--/app/settings/fabricDefaultStageFrameHistoryCount=N Frame history for Fabric
--enable EXT_ID Enable specific extension
--ext-folder PATH Add extension search path
--exec SCRIPT Execute script on startup
--no-ros-env Skip ROS 2 auto-sourcing

App Configurations

Config File Use Case
isaacsim.exp.full.kit Full simulation (default)
isaacsim.exp.full.newton.kit Newton physics engine
isaacsim.exp.full.fabric.kit Fabric scene delegate
isaacsim.exp.base.kit Minimal base (faster startup)
isaacsim.exp.base.python.kit Python-only base
isaacsim.exp.base.python.physics.headless.kit Physics-only headless (CI nightly)
isaacsim.exp.base.zero_delay.kit Zero-delay base

CI Physics-Only Nightly Runs

For physics-only nightly CI (no rendering, no window), use the dedicated kit file:

# Kit CLI mode — self-contained headless physics config
./kit/kit apps/isaacsim.exp.base.python.physics.headless.kit \
    --no-window \
    --/app/renderer/enabled=false \
    --exec "test_physics_batch.py"

For standalone Python scripts that bootstrap SimulationApp themselves, use python.sh with renderer-disable flags:

# python.sh mode — flags passed through to Carbonite/Kit settings
./python.sh test_physics_batch.py \
    --/renderer/enabled=false \
    --/app/window/enabled=false \
    --/app/livestream/enabled=false

The kit file (isaacsim.exp.base.python.physics.headless.kit) bakes in:

  • renderer.enabled = false — no GPU rendering subsystem
  • app.window.enabled = false — no window creation
  • app.livestream.enabled = false — no streaming
  • All UI/viewport/manipulator extensions disabled
  • All rendering extensions disabled (omni.hydra.rtx, omni.rtx.*, omni.syntheticdata, omni.replicator.core)
  • Physics-optimal loop settings (rateLimitEnabled = false, manualModeEnabled = true, useFixedTimeStepping = true)

The wrapper script scripts/ci_physics_nightly.sh encapsulates both modes. Set CI_KIT_MODE=1 for Kit CLI, or leave unset for python.sh (default).

Batch Simulation Pattern

The canonical headless bootstrap pattern lives in:

  • source/standalone_examples/api/isaacsim.simulation_app/hello_world.py (minimal)
  • source/standalone_examples/api/isaacsim.simulation_app/load_stage.py (stage open + step loop with --test mode)

For an N-episode batch driver, wrap that bootstrap in a Python for episode in range(N) loop. Use the current APIs:

  • isaacsim.core.experimental.utils.stage for stage open / waiting on load
  • isaacsim.core.simulation_manager.SimulationManager.setup_simulation(dt=..., device=...) to configure physics
  • isaacsim.core.experimental.utils.app (enable_extension, play, stop, update_app) to drive the loop

Skeleton (paraphrased from load_stage.py, adapted for batch):

run_batch_simulation(scene_path, num_episodes, steps_per_episode, dt, device) — headless SimulationApp loop that opens a USD, waits for load, sets up physics, steps, and stops each episode.

See scripts/batch_simulation.py.

Avoid the legacy isaacsim.core.api.World / isaacsim.core.utils.stage paths — they are deprecated in Kit 110.

Migration: see Renaming Extensions for the omni.isaac.* → isaacsim.* map covering omni.isaac.core, omni.isaac.utils, and friends.

Performance Tuning for Batch/Headless

Physics-Only (Fastest)

config = {"headless": True, "renderer": None}
# In step loop:
world.step(render=False)

Throughput: 10-50x real-time depending on scene complexity.

Memory Management

  • Clear stage between episodes: world.clear() + garbage collect
  • Use instanceable assets: make_instanceable: true in config.yaml
  • Monitor GPU memory: nvidia-smi — Kit leaks if stages aren't properly cleared
  • GB10 (Jetson): Max ~35K prims, 16GB shared memory — reduce scene complexity

Known Issues (Kit 110)

  • DISPLAY=:0 required for headless viewport on Kit 110 with complex stages on some GPU configurations
  • Viewport never initializes without DISPLAY on some configurations — use --no-window + offscreen rendering
  • CUDA OOM: Monitor with nvidia-smi, keep under 90% GPU VRAM utilization
  • Startup time: ~30-60s cold start; use persistent processes for interactive batch
  • Newton physics + torch conflict: Never import torch before physics settle

版本历史

  • 2469084 当前 2026-09-22 15:45

同 Skill 集合

.claude/skills/action-and-event-data-generation/SKILL.md
.claude/skills/actor-sdg-generate-lighting-variations/SKILL.md
.claude/skills/actor-sdg-sweep-config/SKILL.md
.claude/skills/behavior-tree-generation/SKILL.md
.claude/skills/calibrate-metropolis-camera/SKILL.md
.claude/skills/data-collection-sim/SKILL.md
.claude/skills/generate-incident-config/SKILL.md
.claude/skills/isaac-camera/SKILL.md
.claude/skills/isaac-sim-assets/SKILL.md
.claude/skills/isaac-sim-installation/SKILL.md
.claude/skills/isaac-sim-migration/SKILL.md
.claude/skills/isaac-sim-orchestrator/SKILL.md
.claude/skills/isaac-sim-remote/SKILL.md
.claude/skills/isaac-sim-rendering/SKILL.md
.claude/skills/isaac-sim-robot-navigation/SKILL.md
.claude/skills/isaac-sim-ros-workspaces/SKILL.md
.claude/skills/isaac-sim-ros2-bridge/SKILL.md
.claude/skills/isaac-sim-sensor/SKILL.md
.claude/skills/isaac-sim-troubleshooting/SKILL.md
.claude/skills/isaac-sim-validator/SKILL.md
.claude/skills/isaac-sim-workflow/SKILL.md
.claude/skills/manipulation-ik/SKILL.md
.claude/skills/meta-skills/SKILL.md
.claude/skills/mobility-gen/SKILL.md
.claude/skills/motion-generation/SKILL.md
.claude/skills/navigation-primitives/SKILL.md
.claude/skills/object-bin-packing/SKILL.md
.claude/skills/occupancy-map/SKILL.md
.claude/skills/physics-simulation/SKILL.md
.claude/skills/place-camera-aim-at/SKILL.md
.claude/skills/place-camera-max-coverage/SKILL.md
.claude/skills/profile-isaac-sim/SKILL.md
.claude/skills/run-incident-events/SKILL.md
.claude/skills/skill-distillation/SKILL.md
.claude/skills/skills-eval-triage/SKILL.md
.claude/skills/spatial-reasoning/SKILL.md
.claude/skills/urdf-mjcf-to-usd-conversion/SKILL.md
.claude/skills/usd-articulation/SKILL.md
.claude/skills/usd-composition-architecture/SKILL.md
.claude/skills/usd-pipeline/SKILL.md
.claude/skills/validation-diff-gifs/SKILL.md
.claude/skills/vlm-scene-captioning/SKILL.md
skills/action-and-event-data-generation/SKILL.md
skills/actor-sdg-generate-lighting-variations/SKILL.md
skills/actor-sdg-sweep-config/SKILL.md
skills/behavior-tree-generation/SKILL.md
skills/calibrate-metropolis-camera/SKILL.md
skills/data-collection-sim/SKILL.md
skills/generate-incident-config/SKILL.md

元信息

文件数
0
版本
2469084
Hash
1f5fd6a8
收录时间
2026-09-22 15:45

首页 - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-09-25 05:09
浙ICP备14020137号-1