Start with the job each layer performs
| Layer | Job | Examples |
|---|---|---|
| Physics engine | Compute mechanical state and contact response | MuJoCo, Bullet, PhysX |
| Robot simulator | Assemble scenes, devices, rendering and execution | Isaac Sim, Gazebo, Webots, CoppeliaSim |
| Learning framework | Collect trajectories and update a policy | Isaac Lab environments with RSL-RL; Playground with PPO |
| Middleware | Exchange messages between robot software components | ROS 2 |
| Motion planning | Find feasible paths or trajectories for a task | MoveIt 2 |
| Description format | Store robot or scene structure | URDF, MJCF, SDF, USD |
A robot can use several layers together. For a simulated arm, a planner proposes a trajectory, a controller tracks it and a physics engine computes the response. A camera can publish observations through ROS 2. None of those roles disappears merely because one application packages several of them.
Compare documented requirements
Versions and documentation were checked on 8 October 2026. Platform support below is the documented scope, not a claim that every listed combination was installed here. Software licences do not automatically cover downloaded models, textures or commercial extensions.
| Software and version | Main function | OS support | Hardware and execution | Robot models | Licence |
|---|---|---|---|---|---|
| MuJoCo 3.15.0 | Articulated dynamics and control calculations | Linux, Windows, macOS; binaries depend on architecture | Native CPU dynamics; OpenGL viewer; separate MJX/Warp GPU paths | MJCF; URDF import; MJB/MJZ | Apache-2.0 code; check each model |
| Isaac Sim 6.1.0 | Robot scenes, physics, rendering and sensors | Ubuntu 22.04/24.04; Windows 11 | Minimum RTX 4080, 16 GB VRAM, 32 GB RAM; RT cores required | USD scenes; supported URDF import | Apache-2.0 repository code; additional NVIDIA terms for Kit/assets and other component licences |
| Gazebo Jetty / gz-sim 10.x | Plugin-based robotics simulation | Official Ubuntu 24.04 amd64; other platforms best effort | Ogre 2 rendering needs OpenGL 3.3; server-only packages available | SDF; URDF converted through SDFormat | Apache-2.0 gz-sim; separate asset terms |
| Webots R2025a | Desktop robot and device simulation | Versioned packages for Windows 10, Ubuntu 22.04/24.04, macOS Intel/Apple Silicon | Published minimum dual-core 2 GHz, 2 GB RAM; OpenGL 3.3 graphics | Robot nodes, PROTO and WBT; URDF conversion | Apache-2.0 software; check asset terms |
| CoppeliaSim 4.10.0 rev0 | Scripted scenes, dynamics, kinematics and remote APIs | Windows, Linux, macOS | Headless -H still needs a display server; ordinary vision sensors unavailable there | TTT/TTM scenes and models; URDF and SDF import | Edition-specific Pro/Lite/Edu terms |
| PyBullet 3.2.7 | Python dynamics, collision and kinematics API | Linux, macOS, Windows; wheel availability varies | Ordinary simulation and CPU rendering need no GPU; optional OpenGL | URDF and SDF | zlib/libpng, with file-level exceptions |
| Drake 1.57.0 | Multibody dynamics, optimization, planning and control | Supported Linux distributions and macOS; no official Windows target | CPU simulation/optimization; rendered cameras need graphics libraries | URDF, SDF, MJCF, model directives, OBJ with parser limits | BSD-3-Clause plus dependency/solver terms |
| Genesis World 1.4.3 | Multiphysics and parallel robot simulation | Linux, Windows, macOS | CPU, CUDA, ROCm or Metal physics backends; solver restrictions differ | URDF, MJCF, OBJ, GLB, USD with relevant extras | Apache-2.0 source; component and asset terms apply |
[6] [7] [8] [3] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23]
For Drake, the current support page contains nightly and future-release qualifications. Do not assume a macOS Python 3.12 wheel exists for 1.57 merely because a later release is scheduled to provide one. For Webots, its living requirements list newer operating systems than the versioned R2025a package list. Use the actual installer and branch intended for the experiment. [18] [9]
CoppeliaSim Edu is limited to eligible educational use. Companies and independent research institutions cannot assume eligibility. Its GPL core library does not make every distributed plugin or edition unrestricted. Read the licence attached to the chosen package. [14]
Genesis documents several compute backends, but that does not put every optional solver on every device. Its IPC path requires an NVIDIA GPU on Linux or Windows x86. Intel graphics may render while physics uses the CPU. Select the solver and backend together. [21] [22]
Add a learning library only when the task needs it
| Tool | What it supplies | What remains your responsibility |
|---|---|---|
| Isaac Lab 3.0 Early Access | Learning task interfaces and parallel environments, with selectable simulation backends | Choose a supported backend and matching assets; it is not another name for Sim |
| MuJoCo Playground | Ready robot-learning tasks using MuJoCo accelerator backends | Match the task’s model, backend, observations and evaluation protocol |
| Stable-Baselines3 | PyTorch implementations of RL algorithms such as PPO | Provide a compatible environment and verify wrappers and action semantics |
| RSL-RL | Robotics RL and student-teacher algorithms | Supply the simulation task and its supported integration |
| PyTorch | Tensors, neural networks and automatic differentiation | Supply the physics, reward, data and training procedure |
A GPU is not automatically the fastest choice for every policy update. Stable-Baselines3’s PPO documentation advises CPU execution for many non-image workloads. That advice is about that algorithm implementation; it does not mean thousands of contact-rich simulation environments are cheap on a small laptop. [26]
Place ROS and planning above the mechanics
ROS 2 provides software interfaces and message transport. Loading a robot description into a ROS application does not calculate the ground reaction force beneath a foot. A simulator integration must still map commands, timestamps, frames and sensor messages to the simulated robot. [4]
MoveIt 2 addresses manipulation planning, kinematics, perception interfaces and trajectory processing. ros2_control manages controller updates and hardware interfaces that read state and write commands. A simulator plugin can supply a simulated hardware interface. A collision-free arm path is still distinct from a balance controller for the body carrying that arm. [5] [29]
Gazebo publishes recommended ROS pairings, including Jazzy with Harmonic and Lyrical with Jetty. Select the documented pair for the project. Upgrading the simulator collection independently can break an otherwise coherent package set. [30]
For the physical task above this software, Read the grasping and manipulation guide
Choose by the experiment you will run
| Your task | A documented starting point | First thing to check |
|---|---|---|
| Learn joint dynamics on a limited computer | Native MuJoCo or PyBullet CPU simulation | Interpreter, model load and a small command/state log |
| Study walking policies in parallel | Playground or a supported Isaac Lab backend | GPU/backend compatibility, action mapping and held-out trials |
| Integrate ROS sensors and controllers | A matched Gazebo/ROS distribution pair | Topic timestamps, frame names and controller interface |
| Create a desktop robot-device experiment | Webots | Device support and actual graphics compatibility |
| Prototype an arm mechanism or scene | CoppeliaSim, or MoveIt above a compatible simulator | Licence eligibility, joints, collision geometry and control API |
| Optimize a trajectory or controller with mechanics constraints | Drake | Parser semantics, solver choice and applicable solver licence |
| Study rendered cameras or synthetic data | Isaac Sim on supported RTX hardware | Sensor model, calibration assumptions, graphics memory |
| Explore rigid/soft interactions across supported compute backends | Genesis World | Which solver, sensor and renderer support the selected backend |
The first row is a small-experiment recommendation. It does not promise practical full humanoid policy training on a weak CPU. Cyberbotics also warns that Intel graphics may fail its rendering requirements, so “desktop simulator” should not be read as “any integrated GPU”. [10]
For cloud work, keep the same compatibility checks and add artifact export, storage and cost limits. Remote compute changes where the workload runs; it does not remove model errors or license conditions.
Keep a stack record with every result
- Record the simulator version, model commit and asset licence.
- Retain the operating system, CPU/GPU, driver and resolved package versions.
- Save timestep, solver, actuator settings, random seeds and controller checkpoint.
- State whether cameras and other rendering workloads were active.
- Compare speed only under matched model complexity, solver accuracy and workload.
Use the executed MuJoCo example as a small starting point
Sources and verification
- MuJoCo overview and runtime model ↗Google DeepMind · Read 8 October 2026
- Isaac Sim 6.1 architecture ↗NVIDIA · Read 8 October 2026
- Gazebo Sim source and licence ↗Gazebo maintainers · Read 8 October 2026
- ROS 2 middleware interface design ↗ROS 2 project · Read 8 October 2026
Architectural source, not a current exhaustive vendor list.
- MoveIt 2 planning and manipulation framework ↗MoveIt project · Read 8 October 2026
- MuJoCo 3.15.0 release ↗Google DeepMind · Read 8 October 2026
Version used in the executed CPU example.
- Isaac Sim 6.1 hardware and tested drivers ↗NVIDIA · Read 8 October 2026
The table is NVIDIA’s minimum column, not a locally measured capacity estimate.
- Gazebo Jetty installation and supported platforms ↗Open Robotics / Gazebo · Read 8 October 2026
- Webots R2025a release and platform packages ↗Cyberbotics · Read 8 October 2026
- Webots documented hardware requirements ↗Cyberbotics · Read 8 October 2026
Living requirements can differ from the R2025a release asset list.
- Webots source and Apache licence ↗Cyberbotics · Read 8 October 2026
- CoppeliaSim version history ↗Coppelia Robotics · Read 8 October 2026
- CoppeliaSim command line and headless limits ↗Coppelia Robotics · Read 8 October 2026
- CoppeliaSim edition and licence terms ↗Coppelia Robotics · Read 8 October 2026
- CoppeliaSim model import and export ↗Coppelia Robotics · Read 8 October 2026
- PyBullet 3.2.7 package and platform information ↗Bullet project maintainers · Read 8 October 2026
- Drake release history ↗Drake maintainers · Read 8 October 2026
- Drake supported platforms ↗Drake maintainers · Read 8 October 2026
Use the stable-release qualifications, not a nightly-only wheel promise.
- Drake multibody model parser ↗Drake maintainers · Read 8 October 2026
- Drake BSD licence and exceptions ↗Drake maintainers · Read 8 October 2026
- Genesis World 1.4.3 package ↗Genesis World maintainers · Read 8 October 2026
- Genesis World installation and backend matrix ↗Genesis World maintainers · Read 8 October 2026
- Isaac Sim source and additional component licences ↗NVIDIA · Read 8 October 2026
Apache-2.0 repository software; Kit, assets and other components have separate terms.
- Isaac Lab 3.0 Early Access release ↗NVIDIA / Isaac Lab · Read 8 October 2026
Early Access, checked 8 October 2026. Do not assume final 3.0 has shipped.
- MuJoCo Playground installation at the inspected commit ↗Google DeepMind / MuJoCo Playground · Read 8 October 2026
Commit from 7 October 2026. Installation and training were not executed here.
- Stable-Baselines3 PPO and execution guidance ↗Stable-Baselines3 maintainers · Read 8 October 2026
- RSL-RL algorithms and supported integrations ↗ETH Zurich / RSL-RL maintainers · Read 8 October 2026
- PyTorch platform and compute installation choices ↗PyTorch · Read 8 October 2026
- ros2_control controller and hardware architecture ↗ros2_control project · Read 8 October 2026
- Gazebo and ROS distribution pairings ↗Open Robotics / Gazebo · Read 8 October 2026
Article history
Added a sourced engineering guide with version-specific references, practical resources and explicit evidence limits.
Report a correction