Skip to main content

Overall Comparison

Here is a table including a brief summary for physics simulators:

SimulatorPhysics EngineRenderingSensor🤨DynamicsGPU-accelerated SimulationOpen-Source
IsaacSimPhysX 5Rasterization; RayTracingRGBD; Lidar; Force; Effort; IMU; Contact; ProximityRigid;Soft;Cloth;Fluid
IsaacGymPhysX 5, FlexRasterization;RGBD; Force; Contact;Rigid;Soft;Cloth
SAPIENPhysX 5, WarpRasterization; RayTracing⭐️;RGBD; Force; Contact;Rigid;Soft;Fluid
PybulletBulletRasterization;RGBD; Force; IMU; Tactile;Rigid;Soft;Cloth
MuJoCoMuJoCoRasterization;RGBD; Force; IMU; Tactile;Rigid;Soft;Cloth✔💡
CoppeliaSimMuJoCo; Bullet; ODE; Newton; VortexRasterization; RayTracing🔶;RGBD; Force; Contact;Rigid;Soft;Cloth
GazeboBullet; ODE; DART; SimbodyRasterization;RGBD; Lidar; Force; IMU;Rigid;Soft;Cloth

🤨: Check more information about sensors: IsaacSim, IsaacGym(Doc), SAPIEN, Pybullet, MuJoCo, CoppeliaSim, Gazebo

⭐️: RayTracing is currently not available in parallel gym-like envs.

🔶: Supported but Limited: CoppeliaSim has built-in functionality for simulating ray-tracing effects to a certain extent. For example, it can perform ray-casting operations, which are useful for sensor simulations and collision detections. However, this is not the same as full-fledged ray tracing for photorealistic rendering.

💡: MJX allows MuJoCo to run on compute hardware supported by the XLA compiler via the JAX framework. MJX runs on a all platforms supported by JAX: Nvidia and AMD GPUs, Apple Silicon, and Google Cloud TPUs.

Rendering

Comparison of Rendering Speed

We build up the same environment with all the simulators. Here are the rendered images and rendering speed🟡.

Notice:

  • The rendering results are evaluated on two machines and we report two evaluation results.
  • The rendering code can be found under code/rendering folder, see here for more details.
  • We are only providing as comprehensive a result as possible. The results are not completely authoritative and are not in any way inductive. The test code is all public. If you have any questions about the test, you can first take a look at the corresponding code, and then try to discuss it with us openly in the issue.
  • Everyone is welcome to contribute the test code and results to this project.
SAPIEN Rendering

SAPIEN

IsaacGym Rendering

IsaacGym

Pybullet Rendering

Pybullet

Evaluation 1 (RTX4090 ⭐️):

SimulatorSAPIEN (Rasterization)IsaacGym (Rasterization)IsaacSim(Ray Tracing)Pybullet (Rasterization)MuJoCo
RGB @ FPS1175.741917.32🤔182.3329.50(OpenGL) 13.68(TinyRender)2262.59
Depth @ FPS1467.481917.32🤔156.3129.50(OpenGL) 13.68(TinyRender)1039.91
Segmentation @ FPS1153.031917.32🤔141.0829.50(OpenGL) 13.68(TinyRender)320.86

⭐️: The rendering code can be found under code/rendering folder, see github repo for more details. The number reported here is run with 13th Gen Intel Core i9-13900K and RTX 4090.

🤔: In IsaacGym, we cannot decouple depth, segmentation, and RGB rendering. Therefore, we report average FPS across all three rendering modes.

Evaluation 2 (A100 🟡):

SimulatorSAPIEN (Rasterization)IsaacGym (Rasterization)IsaacSim(Ray Tracing)Pybullet (Rasterization)MuJoCo
RGB @ FPS228.23789.25🤔102.4322.49(OpenGL) 7.06(TinyRender)88.68
Depth @ FPS280.56789.25🤔92.4322.49(OpenGL) 7.06(TinyRender)288.61
Segmentation @ FPS261.06789.25🤔97.4322.49(OpenGL) 7.06(TinyRender)119.74

🟡: The rendering code can be found under code/rendering folder, see github repo for more details. The number reported here is ran with AMD EPYC 7742 64-Core Processor and A100(80G).

🤔: In IsaacGym, we cannot decouple depth, segmentation, and RGB rendering. Therefore, we report average FPS across all three rendering modes.

Popularity

SimulatorSAPIENIsaacGymIsaacSimPybulletMuJoCoCoppeliaSimGazebo
Github Star🟡274//11.4k6.6k881.1k🔶
Citation (Google Scholar⭐️)302375//488417863949

🟡 Last Update: 2023.12.20

⭐️ Last Update: 2023.12.20

🔶 gazebo-classic