Agent Skills › isaac-sim/IsaacSim › isaac-sim-validator

isaac-sim-validator

GitHub

Isaac Sim脚本交付前QA门禁,通过静态检查与受限执行验证导入、光照、路径及渲染配置等常见缺陷,确保仿真工作交付质量。

.claude/skills/isaac-sim-validator/SKILL.md isaac-sim/IsaacSim

触发场景

Isaac Sim脚本交付前审查 验证仿真脚本的合法性与正确性

安装

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

非标准路径

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

不安装直接使用

npx skills use isaac-sim/IsaacSim@isaac-sim-validator

指定 Agent (Claude Code)

npx skills add isaac-sim/IsaacSim --skill isaac-sim-validator -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-validator",
    "license": "Apache-2.0",
    "metadata": {
        "author": "Renato Gasoto <info@nvidia.com>"
    },
    "description": "Pre-delivery QA gate for Isaac Sim scripts (imports, lights, paths, frames). Level 3 executes untrusted Python unsandboxed and needs --confirm-execute. Use before handing off simulation work."
}

Isaac Sim Validator

WARNING: Level 3 executes the target script with your full user privileges. There is no container or sandbox isolation. Only use --confirm-execute on scripts you fully trust.

Purpose

Reject common delivery defects: black frames, deprecated imports, hardcoded user paths, missing lights, wrong render modes, and undersized SimulationApp configurations.

Levels 1–2 are static checks only. Level 3 runs the target Python script under timeout with the calling user's privileges. Level 3 requires an explicit --confirm-execute (or CONFIRM_EXECUTE=1) opt-in; it is not a sandbox.

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

  • Levels 1–2 cannot prove runtime correctness for every workload.
  • Level 3 executes untrusted script content only after --confirm-execute; there is no container/firejail isolation.
  • Thresholds target common demo/SDG failures, not all product features.

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

Final gate before delivery. Reject outputs that fail the checks below; do not soften results.

Available Scripts

Script Purpose Arguments
scripts/validate_sim.sh Validate sim positional args per script header (see script)

Running scripts

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

run_script("scripts/validate_sim.sh", args=[])

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.

Universal checklist (apply to every output)

Check Pass On fail
Script path exists, readable reject: Script path invalid: <path>
File size > 1 KB reject: Script empty or corrupted
isaacsim import uses isaacsim.*, not omni.isaac.core reject: Use isaacsim.* namespace; omni.isaac.core is deprecated
SimulationApp config explicit width and height reject: SimulationApp without window args causes swapchain-capture size mismatch
Lights present DomeLight (intensity >= 100) and DistantLight (>= 500) reject: No lighting; render will be black
Render mode RayTracedLighting for iteration; PathTracing only for hero shots reject: PathTracing too slow for iteration; use RayTracedLighting
ACES tonemap carb rtx.post.tonemap.op = 4; filmIso 200 default / 600 deep-aisle / 400 aerial suggest: Enable ACES (op=4) for contrast
Final render >= 150 KB and mean_RGB > 30 reject: Render is black or low-energy; check lighting
User paths no /home/<user>/, hardcoded C:\path\to\..., or per-agent home paths; prefer %USERPROFILE%, env vars, or argparse reject: Hardcoded user path; use $ISAAC_SIM_DIR, $ISAAC_LAB_DIR, $WORKSPACE_DIR, or argparse
Network endpoints no bare IPs (192.168.x.x, 10.x.x.x) or non-localhost hosts reject: Hardcoded endpoint; parameterize via env var or config
Output dir configurable (env var, CLI, or function param) reject: Output dir hardcoded; accept as parameter or read $OUTPUT_DIR
VRAM headroom nvidia-smi headroom > 20% after settle warn at >90% utilization; likely leak or scale issue
pkill -f "kit/kit" used flag for kill+relaunch bug warn: Verify zero kit processes before next launch
Sim duration >= 3 s of physics reject: Sim ran < 3 s; physics has not settled

File structure validation (USD scenes)

Item Valid Invalid Action
$ISAAC_LAB_DIR/scripts/ read-only reference writing outputs there redirect to $OUTPUT_DIR or $WORKSPACE_DIR/outputs/
get_assets_root_path() -> s3://... runtime OK baked into delivered output cache locally; reference via configurable path
Melting / Splat MDL-only shaders OK in raw form MDL-only at export filter out; MDL-only causes black render
MakeInstanceable for RL required (make_instanceable: true) absent reject
usdPreviewSurface on surfaces required absent reject; suggest adding UsdPreviewSurface
convex_decompose_mesh false (with clean_sdf_dc) true recommend false for stability
mpu=0.01 OK for warehouse shell (13 m tiles) on a robot reject

Render validation (frame analysis)

Metric Good Bad Action
File size 1–4 MB ~82 KB 82 KB = black, reject
Mean RGB 80–160 < 20 reject: Too dark; add lights
Max RGB 200–250 0 reject: No light in scene
Pixel variance > 15 < 5 flat = missing shadows; add accents
Color histogram multi-modal single peak overexposed or flat lighting; adjust intensity
Object visibility >= 3 robots or 50+ assets < 10 visible suggest: Scene too sparse; add set dressing
Shadow consistency consistent shadows random black blobs reject: Shadow artifacts; check light cone bounds

Video validation

For any delivered MP4/GIF, extract and inspect at least start/middle/end frames. Reject or recut the presentation copy if the first frames show render warm-up, the subject is occluded, or the camera loses the task. Keep the complete source render and metrics when a shorter presentation cut is made.

RL training validation

Issue Action
AppLauncher not first reject: AppLauncher must precede any isaaclab imports
Task __init__.py non-empty reject: Task __init__.py must be empty; do not import configs
omni.isaac.lab import reject: Use isaaclab.*; omni.isaac.lab is deprecated
PhysX backend (when Newton applies) reject: Use Newton; it is the default on Kit 110
Missing PYTHONUNBUFFERED=1 warn: Set PYTHONUNBUFFERED=1 to see logs in real time
No GPU memory logging suggest: Log torch.cuda.memory_allocated()/1e6 to W&B
Batch size exceeds VRAM suggest: Reduce num_envs (try 2048)
Wrong checkpoint name reject: Must be model_XXXX.zip, not policy.pt
Single seed suggest: Run seeds 42, 123, 456 for valid comparison

Asset & shell validation

Input Check Action
docker run command -v mount for /workspace/output reject: Output folder not mounted
Sub-agent spawn workdir=$WORKSPACE_DIR reject: Sub-agent workdir hardcoded; use $WORKSPACE_DIR
Blender USD export correct mpu, dual-shader (UsdPreviewSurface + MDL), correct export type reject if any missing
Scene complexity renders within 10 settle steps reject: Scene too complex; simplify assets
Ghost artifacts cleanup of /dev/shm/carb-* reject: Use workspace_cleanup.py to clear /dev/shm/carb-*

Decision tree

graph TD
    A[Received Output] --> B{Has script?}
    B -->|No| C[Reject: "No script provided"]
    B -->|Yes| D{File size >1KB?}
    D -->|No| E[Reject: "Script empty or corrupted"]
    D -->|Yes| F{Python?}
    F -->|Yes| G{isaacsim.* imports?}
    G -->|No| H[Reject: "Use isaacsim.* not omni.isaac.core"]
    G -->|Yes| I{SimulationApp or --exec?}
    I -->|Neither| J[Reject: "Must use SimulationApp with window args OR isaac-sim.sh --exec"]
    I -->|SimulationApp| K{width and height set?}
    K -->|No| L[Reject: "SimulationApp requires explicit width and height"]
    K -->|Yes| M{Dome + Distant lights?}
    M -->|No| N[Reject: "Add DomeLight and DistantLight (min intensity 100 and 500)"]
    M -->|Yes| O{RayTracedLighting?}
    O -->|No| P[Reject: "Use RayTracedLighting for iteration"]
    O -->|Yes| Q{Render output exists?}
    Q -->|No| R[Reject: "No render output"]
    Q -->|Yes| S{>= 150 KB and mean_RGB > 30?}
    S -->|No| T[Reject: "Render is black, too dark, or corrupted"]
    S -->|Yes| U{Hardcoded user paths or bare IPs?}
    U -->|Yes| V[Reject: "Replace hardcoded user paths/IPs with env vars or args"]
    U -->|No| Y[VALID - deliver]

Training output

Item Action
policy_only_XXXX.pt accept
model_XXXX.zip accept
log.csv or wandb URL accept
results.json with episode data accept
No reward curve / metrics reject: Log episode/reward_mean and train/value_loss

Reply format

  • Pass: Valid: <one-line summary>
  • Fail: Invalid: <list of failed checks>
  • Suggest (only when otherwise valid): Could be improved: <tip>

Do not hedge ("I think", "maybe"). Do not deliver a black frame.

Input sources

  • isaac-sim-orchestrator, isaac-sim-rendering, other producer skills, and sub-agent outputs.
  • Invoked on Isaac Sim deliverables: "validate this Isaac Sim script", "check this Isaac Sim render", "review this sim output".

Automated validation

Run the checks above from the CLI with scripts/validate_sim.sh:

# Levels 1–2: static only
bash scripts/validate_sim.sh --level <1|2> <script.py> [--output-dir <dir>] [--timeout <seconds>]

# Level 3: EXECUTES the script — requires explicit opt-in
bash scripts/validate_sim.sh --level 3 --confirm-execute <script.py> [--output-dir <dir>] [--timeout <seconds>]
# or: CONFIRM_EXECUTE=1 bash scripts/validate_sim.sh --level 3 <script.py> ...

Feedback loop

版本历史

  • 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-headless-deployment/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-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
468bd981
收录时间
2026-09-22 15:45

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