Claude Cursor Skill

isaac-sim

Build GPU-accelerated robot simulations and synthetic-data pipelines with NVIDIA Isaac Sim.

LLM Mart · 0 points · 0 views 0 listing impressions 0 install-command copies
Virus-scanned Reviewed automatically before listing.

Full trust report

Download robium-ai-robium-skills_isaac-sim-498ea4e.zip · 13 KB
Part of robium-ai/robium — 44 skills

Install

skills CLI npx skills add https://github.com/robium-ai/robium/tree/main/skills/isaac-sim
Claude Code claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install robium-ai-robium@llmmart
Git git clone https://github.com/robium-ai/robium.git

The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole robium-ai/robium collection as a plugin from our marketplace. Git is the plain clone.

Skill manifest

Isaac Sim

Isaac Sim is a gated simulation stack. Prove the target hardware and release-compatible runtime before designing the robot application around it.

Pass the gate

  • Check the current NVIDIA requirements for GPU architecture, VRAM, driver, operating system, RAM, and storage. An NVIDIA compute GPU without the required ray-tracing support is not interchangeable with a supported RTX GPU.
  • Isaac Sim does not run on macOS. Use a qualifying remote host or choose a different simulator; do not search for a local workaround.
  • Prefer an official, pinned container when local/remote parity matters. Verify the matching NGC tag, EULA requirements, host driver, and GPU passthrough at the time of use.

Build outward from a running simulation

  • Runtime: the chosen Isaac Sim release starts cleanly on the target host.
  • Scene: the USD stage, physics, units, and robot articulation match the intended application.
  • Sensors: frames, rates, ranges, noise, and rendering modes match the real interfaces or the stated synthetic-data purpose.
  • Integration: ROS 2 bridge version, distro, graph nodes, clock, and topic contracts agree with the external system.
  • Operation: batch jobs run headless; an interactive viewport uses a supported streaming path rather than display forwarding assumptions.

Go deeper only when needed

Done

  • The pinned runtime passes a small headless scene, the required sensor or ROS output is measured, and any remote viewer works through the same deployment path the application will use.
Files (robium)
  • examples
    • docker-run-command.md 3 KB
      # status: unverified
      # source: https://docs.isaacsim.omniverse.nvidia.com/latest/installation/install_container.html
      #         (Container Installation page, fetched directly on 2026-07-10) and
      #         https://catalog.ngc.nvidia.com/orgs/nvidia/containers/isaac-sim
      #         (NGC catalog, confirming the `6.0.1` tag is current as of this
      #         session). Re-verify the tag against the NGC catalog before using
      #         this command in a real project; Isaac Sim ships new container
      #         tags with each release.
      
      # Prerequisites: Docker, the NVIDIA Container Toolkit installed on the host
      # (Linux only; see the environments skill's GPU-and-remote reference for
      # that generic setup), and a working `nvidia-smi` inside a test container
      # to confirm GPU passthrough before running Isaac Sim itself.
      
      # Create the cache/config/data directories once, before the first run, and
      # make sure they're owned by the UID the container runs as (1234 below,
      # the value the docs use for a non-root container user):
      mkdir -p ~/docker/isaac-sim/{cache/main,cache/computecache,logs,config,data,pkg}
      mkdir -p ~/.cache/ov/hub
      sudo chown -R 1234:1234 ~/docker/isaac-sim ~/.cache/ov/hub
      
      docker run --name isaac-sim --entrypoint bash -it --gpus all \
          -e "ACCEPT_EULA=Y" \
          -e "PRIVACY_CONSENT=Y" \
          --rm --network=host \
          -v ~/docker/isaac-sim/cache/main:/isaac-sim/.cache:rw \
          -v ~/docker/isaac-sim/cache/computecache:/isaac-sim/.nv/ComputeCache:rw \
          -v ~/docker/isaac-sim/logs:/isaac-sim/.nvidia-omniverse/logs:rw \
          -v ~/docker/isaac-sim/config:/isaac-sim/.nvidia-omniverse/config:rw \
          -v ~/docker/isaac-sim/data:/isaac-sim/.local/share/ov/data:rw \
          -v ~/docker/isaac-sim/pkg:/isaac-sim/.local/share/ov/pkg:rw \
          -v ~/.cache/ov/hub:/var/cache/hub:rw \
          -u 1234:1234 \
          nvcr.io/nvidia/isaac-sim:6.0.1
      
      # Inside the container, launch headless (see the ros2-integration and
      # setup-and-requirements references for the ROS 2 bridge and the WebRTC
      # livestream ports needed to view the result remotely):
      #
      #   ./runheadless.sh -v
      
      # Flag notes:
      # - `--gpus all`            required GPU passthrough (NVIDIA Container Toolkit).
      # - `--network=host`        required for WebRTC livestreaming to work, not
      #                            just a convenience; the signaling/media ports
      #                            below need to be reachable directly.
      # - `-e "ACCEPT_EULA=Y"`    required; the container will not start without it.
      # - `-e "PRIVACY_CONSENT=Y"` optional telemetry opt-in, included here for
      #                            parity with the upstream example command.
      # - the `-v` cache/config/data mounts persist Omniverse's shader and asset
      #   cache across container restarts, so a second run isn't a cold start
      #   that re-downloads/re-compiles everything from scratch.
      # - `-u 1234:1234`          runs as a non-root UID matching the directories
      #                            created above; a mismatched UID/ownership here
      #                            is a common source of permission errors.
      
  • references
    • ros2-integration.md 4.8 KB
      # ROS 2 integration
      
      The `isaacsim.ros2.bridge` extension, which ROS 2 distros it officially
      supports per platform, the OmniGraph node pattern used to publish/subscribe
      topics, and a worked clock-publisher example. Source:
      `docs.isaacsim.omniverse.nvidia.com`'s ROS 2 installation and tutorial pages:
      the distro-support table is a direct fetch on 2026-07-10; the extension
      name and OmniGraph node identifiers are drawn from OmniGraph node
      references visible in a fetched tutorial page (search-synthesis level
      confidence); re-verify the exact extension id and node names against the
      live docs or the running Extensions window before depending on them in a
      real project.
      
      ## Officially supported ROS 2 distros (direct fetch on 2026-07-10)
      
      | Platform | Supported distros | Recommended |
      |---|---|---|
      | Ubuntu 24.04 | Jazzy | Jazzy |
      | Ubuntu 22.04 | Humble, Jazzy | Jazzy |
      | Windows 11 | Humble | Humble |
      
      **This may be narrower than the ROS 2 release used by the application.** The
      table records what NVIDIA documented on 2026-07-10, not a permanent support
      matrix. Detect the project's actual distro and re-check the current bridge
      documentation before choosing a mixed stack. A distro absent from the official
      matrix is unverified until the bridge is exercised against it.
      
      **Experimental: any natively-installed distro.** The docs note Isaac Sim
      "experimentally supports loading any ROS 2 distro that is natively
      installed on your platform" (Ubuntu 22.04 or 24.04 only) by sourcing the
      host's own ROS 2 install before Isaac Sim launches, rather than using the
      bridge's bundled internal ROS 2 libraries. Only Humble and Jazzy were
      officially tested and recommended in that fetch; treat any other distro run
      this way as unverified for a given project until the bridge actually works
      against it.
      
      Additional notes from the same fetch:
      
      - The bridge ships internal ROS 2 libraries for both Humble and Jazzy,
        including Cyclone DDS compiled against Python 3.12, so it does not
        strictly require a host ROS 2 install for those two distros.
      - Zenoh middleware support is currently available only for ROS 2 Jazzy on
        Linux.
      
      ## The bridge extension
      
      The ROS 2 bridge is the extension `isaacsim.ros2.bridge`. It exposes a set
      of OmniGraph nodes (building blocks wired together in an Action Graph,
      either through the GUI or programmatically via `omni.graph.core`'s
      `Controller.edit()` in a standalone Python script) that publish or
      subscribe ROS 2 messages from the running simulation. Confirmed node names
      from a fetched tutorial: `isaacsim.ros2.bridge.ROS2Context` (the shared ROS 2
      context every publisher/subscriber node references) and
      `isaacsim.ros2.bridge.ROS2PublishClock` (publishes `/clock` from the
      simulation's own time). The bridge also ships publish/subscribe node
      variants per ROS 2 message type (image, twist, joint state, TF, and
      others); check the Extensions window's node browser or the live tutorial
      pages for the exact node name before wiring one into a real graph rather
      than guessing the naming pattern.
      
      ## Worked example: publishing `/clock`
      
      From a fetched standalone-Python ROS 2 tutorial page on 2026-07-10: creates
      an Action Graph that reads the simulation's own time and publishes it as
      `/clock`:
      
      ```python
      import omni.graph.core as og
      
      og.Controller.edit(
          {"graph_path": "/ActionGraph", "evaluator_name": "execution"},
          {
              og.Controller.Keys.CREATE_NODES: [
                  ("ReadSimTime", "isaacsim.core.nodes.IsaacReadSimulationTime"),
                  ("Context", "isaacsim.ros2.bridge.ROS2Context"),
                  ("PublishClock", "isaacsim.ros2.bridge.ROS2PublishClock"),
              ],
              og.Controller.Keys.CONNECT: [
                  ("ReadSimTime.outputs:simulationTime",
                   "PublishClock.inputs:timeStamp"),
                  ("Context.outputs:context", "PublishClock.inputs:context"),
              ],
              og.Controller.Keys.SET_VALUES: [
                  ("PublishClock.inputs:topicName", "/clock"),
              ],
          },
      )
      ```
      
      Every publisher/subscriber node in a graph shares one `ROS2Context` node
      (the `Context.outputs:context` → `<node>.inputs:context` connection above);
      don't create a separate context per node, it's meant to be shared across
      the whole graph the same way a single ROS 2 node handle is shared across a
      process elsewhere.
      
      Subscribing follows the same graph-node pattern in reverse (a subscribe
      node's output feeds application logic instead of a publish node consuming
      simulation state); the docs illustrate this with an example where an
      incoming empty ROS 2 message teleports a cube to a random location; the
      exact subscribe node name for a given message type should be checked the
      same way as any other node in this extension.
      
      ## Generic ROS 2 mechanics
      
      Workspaces, colcon, launch files, TF2 concepts, and QoS are the `ros2`
      skill's territory, not re-taught here; this reference stops at what the
      bridge extension itself publishes and subscribes.
      
    • scenes-and-sensors.md 5.5 KB
      # Scenes, robots, sensors, and synthetic data
      
      USD stage/scene basics, the standalone `SimulationApp` Python workflow,
      importing robots, attaching sensors, and the Replicator synthetic-data
      pipeline. Source: `docs.isaacsim.omniverse.nvidia.com`'s quickstart, robot
      setup, and Replicator tutorial index pages, mostly search-synthesis level
      (page-navigation-hub content rather than a single copy-pasteable snippet);
      re-verify exact API calls against the live tutorials before depending on
      them in a real project. The clock-publisher pattern in
      `references/ros2-integration.md` is the one piece of code on this topic
      confirmed by direct fetch on 2026-07-10.
      
      ## USD stage and scene basics
      
      Isaac Sim scenes are USD (Universal Scene Description) stages. Everything
      doable through the GUI can also be done through Python: the standard
      workflow is to author or assemble a scene interactively, export it as a
      `.usd`/`.usda` file, then drive it from a standalone Python script for
      repeatable runs (batch synthetic-data generation, headless regression
      testing, and so on).
      
      **Standalone Python workflow.** A standalone script must construct
      `SimulationApp` *before* importing anything else from Isaac Sim: the app
      object owns the render/physics context that later imports depend on:
      
      ```python
      from isaacsim import SimulationApp
      
      simulation_app = SimulationApp({"headless": True})  # or False for a local display
      
      # Isaac Sim imports must come after SimulationApp is constructed.
      import omni.usd
      # ... build or load a stage, add robots/sensors, step the sim ...
      
      simulation_app.close()
      ```
      
      This import-order requirement (`SimulationApp` first, everything else
      after) is a common source of confusing import errors if violated; treat
      it as a hard rule, not a style preference. Re-verify the exact
      `isaacsim.SimulationApp` import path against the current tutorials before
      depending on it verbatim; older Isaac Sim releases used
      `omni.isaac.kit.SimulationApp` instead, and the module path has moved
      across major versions.
      
      **Loading an existing scene.** Open a `.usd` file directly from the GUI's
      Asset Browser, which is backed by NVIDIA's Nucleus asset library (hosted
      robot and environment assets ready to drop into a stage), or point a
      standalone script's stage-open call at a local or Nucleus-hosted USD path.
      
      ## Adding a robot
      
      Isaac Sim ships several importers rather than one universal path:
      
      - **URDF Importer**: the most common path for a ROS-ecosystem robot that
        already has a URDF.
      - **MJCF Importer**: for robots described in MuJoCo's MJCF format.
      - **USD to URDF Exporter**: the reverse direction, useful for round-
        tripping a hand-authored USD robot back into a ROS-facing URDF.
      - **Nucleus-hosted assets**: pre-built robot USDs available directly from
        the Asset Browser, skipping import entirely.
      
      Once a robot is in the stage, Robot Setup tooling covers the rest:
      
      - **Robot Inspector**: examine a robot's structure/properties.
      - **Robot Assembler**: compose a robot from separate component assets
        (e.g. an arm plus a gripper).
      - **Joint Inspector**: examine and tune articulation joints.
      - **Robot Poser**: position a robot and save named poses.
      
      Real hardware fit matters here the same way it does for `gazebo`'s sensors:
      an imported robot's joint limits, masses, and articulation setup should
      match the physical unit's datasheet before results are trusted, not just
      whatever the importer's defaults produce.
      
      ## Adding sensors
      
      Three sensor families, per the Robot Setup documentation:
      
      - **Camera sensors**: standard RGB/depth rendering through Isaac Sim's RTX
        renderer.
      - **RTX sensors**: lidar and radar simulated via the same RTX ray-tracing
        pipeline as camera rendering, rather than a separate physics-only model.
      - **Physics-based sensors**: IMU and contact sensors, driven by the physics
        simulation rather than rendering.
      
      As with Gazebo guidance, pull real rate/FOV/range/noise numbers from the target
      sensor's datasheet rather than leaving
      importer or tutorial defaults in place; a sensor that "looks right" in a
      demo scene but doesn't match the real unit's characteristics produces a
      perception stack that quietly breaks the moment it meets real data.
      
      ## Generating synthetic data (Replicator)
      
      `omni.replicator.core` (Replicator) is Isaac Sim's synthetic-data-
      generation toolkit. This skill owns the *mechanics* of running it inside
      Isaac Sim; deciding how much synthetic data a project needs, and how it
      combines with real or teleop-collected data, is the `data` umbrella
      skill's call.
      
      The pipeline has three parts:
      
      1. **Randomization**: systematically varying scene parameters (object
         poses, lighting, materials/textures, physics properties) across
         generated frames so a downstream perception model doesn't overfit to one
         fixed scene layout.
      2. **Annotators**: capture ground-truth semantic information alongside
         each rendered frame (bounding boxes, segmentation, depth, and other
         modalities) as the scene is randomized.
      3. **Writers**: export the annotated frames to a standardized on-disk
         format; COCO is one supported output format among others.
      
      Typical use cases called out in the docs: domain randomization for
      training robustness, sensor/perception dataset generation, and
      robotics-specific scenarios (navigation, manipulation, grasping). Treat any
      specific Replicator API call (writer names, randomizer function
      signatures) as something to look up against the live Replicator tutorials
      per scene rather than assumed stable across releases; this reference
      intentionally stops at the conceptual pipeline rather than inventing exact
      function signatures that weren't directly confirmed on 2026-07-10.
      
    • setup-and-requirements.md 5.6 KB
      # Setup and requirements
      
      GPU/driver/CPU/RAM/OS/storage requirements, the three install paths
      (container, pip, workstation), and headless/livestream networking for Isaac
      Sim. Source: `docs.isaacsim.omniverse.nvidia.com`'s System Requirements,
      Container Installation, Python (pip) Installation, and livestream-client
      pages, fetched directly on 2026-07-10 (method noted per section below).
      **Requirements change per release**; re-verify against the live
      requirements page before trusting a number here in a real project.
      
      ## GPU, driver, CPU, RAM, storage
      
      The table below is a snapshot of the Isaac Sim 6.0.1 requirements fetched on
      2026-07-10. It is evidence for that release, not a floor to copy into a new
      project without checking the current requirements page.
      
      | Requirement | Minimum | Recommended | Ideal |
      |---|---|---|---|
      | GPU | GeForce RTX 4080, 16 GB VRAM | GeForce RTX 5080, 16 GB VRAM | RTX PRO 6000 Blackwell, 48 GB VRAM |
      | GPU driver (Linux) | 595.58.03+ | – | – |
      | GPU driver (Windows) | 595.97+ | – | – |
      | CPU | Intel Core i7 (7th gen) / AMD Ryzen 5, 4 cores | Intel Core i7 (9th gen) / AMD Ryzen 7, 8 cores | Intel Core i9 X-series / AMD Ryzen 9 or Threadripper, 16 cores |
      | System RAM | 32 GB | 64 GB | 64 GB |
      | Storage | 50 GB SSD | 500 GB – 1 TB NVMe | 500 GB – 1 TB NVMe |
      
      Notes:
      
      - **GPUs without RT cores are unsupported regardless of VRAM**: the docs
        call out A100 and H100 explicitly as not supported, since Isaac Sim's
        RTX renderer needs hardware ray-tracing cores that data-center compute
        GPUs lack.
      - A GPU with less than 16 GB VRAM may struggle rendering scenes exceeding
        ~16 megapixels per frame, a soft ceiling on top of the hard minimum
        above, worth knowing before sizing a multi-camera synthetic-data scene.
      - `aarch64` support is limited to the NVIDIA DGX Spark running DGX OS 7,
        not a general ARM/Jetson path.
      
      **Reconciliation note:** this GPU/RAM floor matches the figures already
      recorded in this repo's architect skill (RTX 4080 min / 16 GB VRAM, RTX
      5080 recommended, 32 GB RAM min / 64 GB recommended); no discrepancy found
      between architect's recorded requirements and the live requirements page as of
      the 2026-07-10 session's fetch.
      
      ## Supported operating systems
      
      These operating-system rows are from the same Isaac Sim 6.0.1 snapshot.
      
      - **Linux:** Ubuntu 22.04 or 24.04.
      - **Windows:** Windows 11 only; **Windows 10 is no longer supported.**
      - **macOS:** not supported, on any hardware (this is a hard stop, not a
        workaround-able gap).
      
      ## Three install paths
      
      **1. Container (recommended for reproducibility).** `nvcr.io/nvidia/
      isaac-sim:6.0.1` on NGC: the pinned, versioned path that reproduces
      identically between a dev machine and a remote GPU server, echoing the
      `environments` skill's general local/remote parity goal. Requires Docker
      plus the NVIDIA Container Toolkit on the host (Linux only; see
      `environments`' GPU-and-remote reference for that generic setup). See
      `examples/docker-run-command.md` for the full invocation.
      
      **2. Pip package.** Python 3.12 is required. The `isaacsim` metapackage
      provides optional extras for installing components individually or in
      bundles (`isaacsim-kernel`, `isaacsim-app`, `isaacsim-core`, and others).
      Install with:
      
      ```bash
      pip install isaacsim[all,extscache]==6.0.1.0 --extra-index-url https://pypi.nvidia.com
      ```
      
      (`isaacsim[all,extscache]` pulls every component with extension caching for
      faster startup; `isaacsim[BUNDLE]` is a smaller bundled alternative without
      that cache.) PyTorch with CUDA should be installed first, into an
      activated virtual environment. This is the lighter-weight path for an
      already-provisioned Linux/Windows workstation; it still needs the same
      GPU/driver floor above, but skips the container layer. Prefer the
      container path when this machine must reproduce elsewhere. Source: direct
      fetch of the pip
      installation page on 2026-07-10.
      
      **3. Workstation / Omniverse Launcher.** A full local GUI install for
      interactive scene authoring on a single machine; same GPU/driver/OS floor
      applies. Use this only for local authoring; it is not the reproducible path
      for a project that also needs to run headless on a remote server.
      
      ## Headless + livestream networking
      
      The port and client shape below was re-checked against NVIDIA's current
      livestream-client guide on 2026-09-07. Provider-specific exposure and remapping
      still belong to that provider's skill.
      
      Running headless: launch with `./runheadless.sh -v` (Linux/container) or
      the equivalent Windows batch file; no display is required, which is the
      default posture for a remote/cloud GPU box.
      
      Livestreaming the viewport uses WebRTC. The host GPU must support NVENC
      (hardware video encoding) to stream at all. Two ports must both be
      reachable; opening only one is a common half-working setup:
      
      | Port | Protocol | Purpose |
      |---|---|---|
      | 49100 | TCP | WebRTC signaling |
      | 47998 | UDP | WebRTC media stream |
      
      Two client options connect to a running headless instance:
      
      - **Native desktop client**: the Isaac Sim WebRTC Streaming Client,
        available for Windows, macOS, and Linux (the client itself runs
        cross-platform even though Isaac Sim's server side does not run on
        macOS).
      - **Browser client**: a Docker Compose deployment serving a browser-based
        interface, reachable from any Chromium-based browser with no local
        install.
      
      For a remote/cloud target reachable over the public internet (not just a
      LAN), set the public IP and ports explicitly at launch so the stream
      announces the correct endpoint to remote clients:
      
      ```
      --/exts/omni.kit.livestream.app/primaryStream/publicIp=<PUBLIC_IP>
      --/exts/omni.kit.livestream.app/primaryStream/signalPort=49100
      --/exts/omni.kit.livestream.app/primaryStream/streamPort=47998
      ```
      
    • webrtc-livestream.md 3.7 KB
      # Remote viewport over WebRTC
      
      Use this card when a headless Isaac Sim instance needs an interactive or
      view-only viewport. The observations were measured on a RunPod pod running Go2
      on Isaac Lab image 3.0.0-beta2-post1 (driver 580.159.04, Python 3.12.13) on
      2026-07-27/28. Isaac Sim owns the streaming protocol; `runpod` owns provider
      port exposure, mapping, and proxy mechanics.
      
      ## Use a supported client
      
      NVIDIA's current remote-viewport path is WebRTC. In the tested pod,
      VNC/VirtualGL connected but could not carry Kit's Vulkan RTX viewport and
      showed black or software output. Preserve that as a failure signature for that
      stack, not a claim that every remote-desktop product or future renderer fails.
      
      - The native **Isaac Sim WebRTC Streaming Client** is available for supported
        Windows, macOS, and Linux client platforms and suits local or trusted
        networks.
      - NVIDIA also documents a separate Docker Compose web client for Chromium-based
        browsers and recommends it for cloud or remote deployments. It runs beside
        Isaac Sim; it is not bundled into the Isaac Sim NGC container.
      - The streaming endpoints provide neither authentication nor encryption. Keep
        them on a trusted network or add an authenticated TLS boundary.
      
      Use the current [NVIDIA livestream client guide](https://docs.isaacsim.omniverse.nvidia.com/latest/installation/manual_livestream_clients.html)
      for the native and browser deployments.
      
      ## Start the stream and prove both paths
      
      - Use the launch command for the installed distribution. Current documented
        forms include `isaac-sim.streaming.sh`, container `runheadless.sh`, and the
        full-streaming pip application; re-check before scripting one.
      - WebRTC needs signaling and media. In the current NVIDIA guide these are TCP
        49100 and UDP 47998. Re-check them for the selected release and open both.
      - For a public endpoint, pass the public IP and advertised ports through the
        current Kit settings. Do not expose the unauthenticated service directly.
      - In the tested RunPod setup, the client used the pod public IP and externally
        mapped ports. Verify current provider behavior with `runpod`; do not copy that
        mapping to another provider.
      - A reachable TCP port proves signaling only. Confirm media, a loaded stage,
        and a changing frame before debugging the application.
      
      The current container guide requires host networking for the native WebRTC
      path; Docker port publishing is not equivalent. The official web-client Compose
      deployment owns its own networking shape.
      
      ## Black, grainy, or slow output
      
      - Compare the server render size with the client's selected resolution. The
        native client tested in 2026-07 offered 720p, 1080p, 1440p, and 4K choices; a
        mismatch produced a black screen and a resolution-difference error.
      - Pass renderer dimensions through current Kit settings. In the tested Isaac
        Lab launcher, generic `--width` and `--height` flags were not accepted.
      - In that client, grainy output tracked render resolution rather than an
        exposed bitrate control. Slow output tracked pod distance. Recheck the
        current client before carrying either diagnosis to another release.
      
      ## Separate viewing from control
      
      - Bare Isaac Lab scripts with livestreaming produced video but did not load the
        full editor's input extensions in the tested image, so the stream was
        view-only.
      - The full editor was interactive, but its timeline fought the running Isaac
        Lab policy's `env.step()` and invalidated the physics tensor view in that
        image.
      - The reliable choices in that trial were headless policy execution with a
        view-only stream, or editor control without policy stepping. Retest this
        limitation on the selected Isaac Sim/Lab pair; do not state it as a permanent
        product constraint.
      
  • FAILURES.md 2.4 KB
    # When Isaac Sim fails
    
    Route by the first layer that lacks evidence.
    
    ## The runtime will not start
    
    - Compare the host GPU, ray-tracing capability, driver, OS, and memory with the
      requirements for the exact Isaac Sim release.
    - Confirm GPU passthrough in a small container before debugging Isaac Sim.
    - Separate an unsupported host from a bad image tag, cache permission, EULA, or
      container-user problem.
    - A container carries a CUDA runtime, not the host kernel driver. An old host
      driver can surface as a renderer or startup failure.
    
    ## Python imports or scene startup fail
    
    - In standalone scripts, construct `SimulationApp` before importing other
      Isaac Sim modules. The import path itself is release-sensitive.
    - Compare the code and extension names with the installed release rather than a
      tutorial for another major version.
    - Reduce to a minimal stage before diagnosing robot or sensor assets.
    
    ## The remote viewer is black or unreachable
    
    - Confirm both signaling and media paths. A reachable TCP port does not prove
      UDP media is reaching the client.
    - Compare server render resolution with a resolution accepted by the client.
      Robium observed a mismatch producing a black screen with an explicit
      resolution error.
    - In Robium's 2026-07 Isaac Lab/RunPod trial, VNC or VirtualGL connected while
      Kit's Vulkan RTX viewport remained unusable. Compare that signature, then use
      a streaming path supported by the selected Isaac Sim release.
    - On a remapped cloud host, distinguish internal service ports from the public
      ports entered in the client.
    
    ## ROS 2 sees no useful data
    
    - Verify the bridge supports or has been proven against the project's ROS 2
      distro and operating system.
    - Confirm the bridge extension, shared ROS context, simulation clock, topic
      names, types, QoS, and frame IDs before debugging downstream ROS nodes.
    - Generic discovery, QoS, TF, and launch issues cross into ROS 2 guidance only
      after the bridge boundary is producing evidence.
    
    ## Policy stepping and interactive streaming conflict
    
    - A view-only stream from a headless training script and an interactive editor
      are different applications.
    - Robium's Isaac Lab trial observed the full editor timeline invalidating the
      policy's physics tensor view while `env.step()` ran. Choose headless policy
      execution with view-only streaming, or interactive editor control without
      policy stepping, unless the current release provides a proven integration.
    
  • SKILL.md 2.4 KB
    ---
    name: isaac-sim
    description: Build GPU-accelerated robot simulations and synthetic-data pipelines with NVIDIA Isaac Sim.
    ---
    
    # Isaac Sim
    
    Isaac Sim is a gated simulation stack. Prove the target hardware and
    release-compatible runtime before designing the robot application around it.
    
    ## Pass the gate
    
    - Check the current NVIDIA requirements for GPU architecture, VRAM, driver,
      operating system, RAM, and storage. An NVIDIA compute GPU without the required
      ray-tracing support is not interchangeable with a supported RTX GPU.
    - Isaac Sim does not run on macOS. Use a qualifying remote host or choose a
      different simulator; do not search for a local workaround.
    - Prefer an official, pinned container when local/remote parity matters. Verify
      the matching NGC tag, EULA requirements, host driver, and GPU passthrough at
      the time of use.
    
    ## Build outward from a running simulation
    
    - **Runtime:** the chosen Isaac Sim release starts cleanly on the target host.
    - **Scene:** the USD stage, physics, units, and robot articulation match the
      intended application.
    - **Sensors:** frames, rates, ranges, noise, and rendering modes match the real
      interfaces or the stated synthetic-data purpose.
    - **Integration:** ROS 2 bridge version, distro, graph nodes, clock, and topic
      contracts agree with the external system.
    - **Operation:** batch jobs run headless; an interactive viewport uses a
      supported streaming path rather than display forwarding assumptions.
    
    ## Go deeper only when needed
    
    - Before installing or provisioning, read
      [references/setup-and-requirements.md](references/setup-and-requirements.md)
      and re-check its dated values against current NVIDIA documentation.
    - For USD, robot import, sensors, or Replicator, read
      [references/scenes-and-sensors.md](references/scenes-and-sensors.md).
    - For the ROS boundary, read
      [references/ros2-integration.md](references/ros2-integration.md).
    - For a remote interactive viewport, read
      [references/webrtc-livestream.md](references/webrtc-livestream.md).
    - When launch, rendering, streaming, or bridge behavior fails, start with
      [FAILURES.md](FAILURES.md).
    - Isaac Lab owns policy training. Data owns source strategy; Isaac Sim owns the
      mechanics of generating synthetic data.
    
    ## Done
    
    - The pinned runtime passes a small headless scene, the required sensor or ROS
      output is measured, and any remote viewer works through the same deployment
      path the application will use.
    

Comments (0)

Sign in to join the conversation.

No comments yet.

Reviews (0)

No reviews yet.

Related