Installation¶
strands-robots-sim ships two install layers:
- Isaac Sim itself — the Omniverse Kit application + Python runtime. Not on PyPI; install once per machine via Omniverse Launcher, Isaac Lab, or the NGC Docker image.
- The
strands-robots-simPython package — a thin pip-installable plugin that registersIsaacSimulationas astrands_robots.backendsentry point and adds a few light deps that Isaac uses internally (usd-corefor USD authoring,warp-langfor sensor kernels).
Order matters: install Isaac Sim first, then pip install
'strands-robots-sim[isaac]' into the same Python environment.
System requirements¶
- GPU — NVIDIA RTX 2070+ (RTX 3090 / A100 / L4 / H100 for fleet training).
- OS — Ubuntu 22.04+ (Linux only; macOS / Apple Silicon are not supported by Isaac Sim).
- CUDA — 12.0+, with a recent NVIDIA driver matching the Isaac Sim release.
- Python — 3.10, 3.11, or 3.12 (Isaac Sim 4.5 ships its own 3.10 embedded interpreter; mirror that version in your venv).
- Disk — ~30 GB for the Isaac Sim SDK on first run, plus ~5 GB for the cached USD assets.
If you only need fast iteration / Apple Silicon / CI smoke tests, install
strands-robots directly and use
the MuJoCo backend; the agent contract is the same.
Step 1 — install Isaac Sim¶
Pick one of three paths.
- Download the NVIDIA Omniverse Launcher.
- Sign in with an NVIDIA developer account.
- From the Exchange tab, install Isaac Sim 4.x.
- Optionally launch the app once to confirm it boots.
The launcher places Isaac Sim under ~/.local/share/ov/pkg/isaac-sim-4.x/.
Isaac Lab bundles Isaac Sim plus the IsaacLab fleet-RL framework:
git clone https://github.com/isaac-sim/IsaacLab.git
cd IsaacLab
./isaaclab.sh -i # downloads Isaac Sim + sets up the venv
source _isaac_sim/setup_python_env.sh
Pick this if you also want IsaacLab's vectorized envs / RL recipes.
The NVIDIA-published Isaac Sim image is the lowest-friction option for cloud / CI runners:
docker pull nvcr.io/nvidia/isaac-sim:4.5.0
docker run --gpus all -it --rm \
-e ACCEPT_EULA=Y \
-v /tmp/.X11-unix:/tmp/.X11-unix \
nvcr.io/nvidia/isaac-sim:4.5.0
Inside the container, Isaac Sim is at /isaac-sim/ with a Python
runtime at /isaac-sim/python.sh.
Step 2 — install strands-robots-sim¶
Use the same Python environment that Isaac Sim's python.sh /
setup_python_env.sh activates. Then:
The [isaac] extra pulls in the pip-installable companion deps that match
the documented Isaac Sim 4.5.x image: isaacsim==4.5.* (the PyPI shim
exposing Kit's Python API), isaaclab>=2.0,<3.0 (Isaac Lab's task / RL
utilities, the 2.x line paired with Isaac Sim 4.5), and usd-core (USD
scene authoring). strands-robots is pulled in transitively, which gives
you the upstream Simulation AgentTool, create_simulation() factory,
and policy providers.
Step 3 — verify the install¶
import strands_robots_sim # registers entry points
from strands_robots_sim.isaac.simulation import IsaacSimulation
available, reason = IsaacSimulation.is_available()
print("isaac available:", available, "(reason:", reason, ")")
On a healthy machine this prints isaac available: True (reason: None).
On a CPU-only / non-Isaac box it returns a structured diagnostic
explaining which omni.* import failed — see
Troubleshooting.
You can also confirm the entry-point registration:
from importlib.metadata import entry_points
for ep in entry_points(group="strands_robots.backends"):
print(ep.name, "->", ep.value)
# isaac -> strands_robots_sim.isaac.simulation:IsaacSimulation
# isaac_sim -> strands_robots_sim.isaac.simulation:IsaacSimulation
From source¶
hatch run lint and hatch run test run the full unit-test slice (no GPU
required); STRANDS_GPU_TEST=1 pytest strands_robots_sim/isaac/tests/test_gpu_integ.py
runs the GPU integration tests.
Next¶
- Quickstart — bring up an Isaac world and step it.
- Architecture — how the entry-point plugin contract works.
- Backends → Isaac Sim — the full backend reference.