Launch, debug, and troubleshoot Isaac Sim simulation scripts. Use when: running test_*.py scripts, debugging SimulationApp crashes, PhysX errors, USD loading failures, WebRTC streaming issues, or ArticulationView initialization problems.
test_*.py or *isaac_sim*.py scriptconda activate env_isaacsim
# Verify:
python -c "from isaacsim import SimulationApp; print('OK')"
python script_cup_manipulator_pendulam_tendon_sea_isaac_sim.py --render native
python test_cup_manipulator_tendon_multi_instance_isaac_sim.py \
--num-envs 9 --render headless --duration 30.0
python test_cup_manipulator_tendon_multi_instance_isaac_sim.py \
--num-envs 4 --render websocket
# Connect to <tailscale-ip>:49100 in browser
| Error | Fix |
|---|---|
ModuleNotFoundError: isaacsim | Wrong conda env — run conda activate env_isaacsim |
RuntimeError: Failed to create SimulationApp | GPU not available or display not set. Use --render headless |
PhysX: exceeded max GPU pairs | Reduce --num-envs or increase gpu_max_rigid_contact_count |
ArticulationView not initialized | Missing world.reset() between initialize_dynamics_view and finalize_dynamics_view |
Segfault on Ctrl+C | Use signal.signal(SIGINT, handler) pattern, NOT try/except |
| Plot not showing | Use matplotlib.use('Agg') + save PNG + open with eog after simulation_app.close() |
omni.kit.livestream.webrtc not found | Extension not installed — check Isaac Sim version |
Need real-time visualization?
├─ Yes, local machine → --render native
├─ Yes, remote machine → --render websocket
└─ No, just data/plots → --render headless (fastest)
world.step(render=False) for headlessArticulationView for batched state/torque queries across N robotsstep % 500 == 0 RTF (real-time factor) printouts