A robotics simulator is a simulator used to create an application for a physical robot without depending on the physical machine, thus saving cost and time. In some case, such applications can be transferred onto a physical robot (or rebuilt) without modification.
The term robotics simulator can refer to several different robotics simulation applications. For example, in mobile robotics applications, behavior-based robotics simulators allow users to create simple worlds of rigid objects and light sources and to program robots to interact with these worlds. Behavior-based simulation allows for actions that are more biotic in nature when compared to simulators that are more binary, or computational. Also, behavior-based simulators may learn from mistakes and can demonstrate the anthropomorphic quality of tenacity.

One of the most popular applications for robotics simulators is for 3D modeling and rendering of a robot and its environment. This type of robotics software has a simulator that is a virtual robot, which can emulate the motion of a physical robot in a real work envelope. Some robotics simulators use a physics engine for more realistic motion generation of the robot. The use of a robotics simulator to develop a robotics control program is highly recommended regardless of whether a physical robot is available or not. The simulator allows for robotics programs to be conveniently written and debugged off-line with the final version of the program tested on a physical robot. This applies mainly to industrial robotic applications, since the success of off-line programming depends on how similar the physical environment of a robot is to a simulated environment.
Sensor-based robot actions are much more difficult to simulate and/or to program off-line, since the robot motion depends on instantaneous sensor readings in the real world.
Features
Modern simulators tend to provide the following features:
- Fast robot prototyping:
- Using the own simulator as creation tool
- Using external tools
- Physics engines for realistic movements: Most simulators use Bullet, ODE or PhysX.
- Realistic 3d rendering: Standard 3d modeling tools or third-party tools can be used to build the environments.
- Dynamic robot bodies with scripting: C, C++, Perl, Python, Java, URBI, and MATLAB languages used by Webots; C++ used by Gazebo.
Simulators
Among the newest technologies available today for programming are those which use a virtual simulation. Simulations with the use of virtual models of the working environment and the robots themselves can offer advantages to both the company and programmer. By using a simulation, costs are reduced, and robots can be programmed off-line which eliminates any down-time for an assembly line. Robot actions and assembly parts can be visualized in a three-dimensional virtual environment months before prototypes are even produced. Writing code for a simulation is also easier than writing code for a physical robot. While the move toward virtual simulations for programming robots is a step forward in user interface design, many such applications are only in their infancy.
General information
| Software | Developers | Development status | License | 3D rendering engine | Physics engine | 3D modeller | Platforms supported |
|---|---|---|---|---|---|---|---|
| Gazebo | Open Source Robotics Foundation (OSRF) | Active | Apache 2.0 | OGRE | ODE, Bullet, Simbody, DART | Internal | Linux, macOS, Windows |
| RoboDK | RoboDK | Active | Proprietary | OpenGL | Gravity plug-in | Internal | Linux, macOS, Windows, Android, iOS, Debian |
| SimSpark | O. Obst et al. (+26) | Active | GNU GPL (v2) | Internal | ODE | None | Linux, macOS, Windows |
| Webots | Cyberbotics Ltd. | Active | Apache 2.0 | Internal (WREN) | Fork of ODE | Internal | Linux, macOS, Windows |
| OpenRAVE | OpenRAVE Community | Active | GNU LGPL | Coin3D, OpenSceneGraph | ODE, Bullet | Internal | Linux, macOS, Windows |
| CoppeliaSim | Coppelia Robotics | Active | Dual: commercial, GNU GPL | Internal | MuJoCo, Bullet, ODE, Vortex, Newton | Internal | Linux, macOS, Windows |
| ENCY Robot1 | ENCY Software | Active | Proprietary | Internal (proprietary ENCY X platform)2 | – | Internal (3D modeling)3 | Windows4 |
| Software | Developers | Development status | License | 3D rendering engine | Physics engine | 3D modeller | Platforms supported |
Technical information
| Software | Main programming language | Formats support | Extensibility | External APIs | Robotics middleware support | Primary user interface | Headless simulation |
|---|---|---|---|---|---|---|---|
| Gazebo | C++ | SDF5/URDF,6 OBJ, STL, COLLADA | Plug-ins (C++) | C++ | ROS, Player, sockets (protobuf messages) | GUI | Yes |
| RoboDK | Python | SLDPRT, SLDASM, STEP, OBJ, STL, 3DS, COLLADA, VRML, Robot Operating System URDF, Rhinoceros 3D, ... | API,7 Plug-In Interface8 | Python, C/C++, C#, Matlab, ... | Socket | GUI | Yes |
| SimSpark | C++, Ruby | Ruby Scene Graphs | Mods (C++) | Network (sexpr) | Sockets (sexpr) | GUI, sockets | Unknown |
| Webots | C++ | WBT, VRML, X3D, 3DS, Blender, BVH, COLLADA, FBX, STL, OBJ, URDF | API, PROTOs, plug-ins (C/C++) | C, C++, Python, Java, Matlab, ROS | Sockets, ROS, NaoQI | GUI | Yes9 |
| OpenRAVE | C++, Python | XML, VRML, OBJ, COLLADA | Plug-ins (C++), API | C/C++, Python, Matlab | Sockets, ROS, YARP | GUI, sockets | Yes |
| CoppeliaSim | C++, Python, Lua | 3DS, Blender, COLLADA, STL, OBJ, URDF, SDF, GLTF, XML | Plug-ins (C/C++), embedded scripts (Python, Lua), remote API (C, C++, Python, Java, MATLAB, Octave), add-ons (Python, Lua) | C, C++, Python, Java, MATLAB, Octave, ROS, ROS 2.0 | Sockets, ROS, ROS 2.0, ZeroMQ | GUI | Yes |
| ENCY Robot | Delphi, C#, C++10 | IGES, STEP, STL, DXF, VRML, Rhinoceros (3DM), Parasolid (x_t/x_b), SolidWorks (SLDPRT/SLDASM), Solid Edge (PAR/PSM/ASM/PWR), PLY, AMF, JT, PLMXML (and others)11
Add-ins: Alibre Design, Autodesk Inventor, IronCAD, CADbro, CAXA 3D, FreeCAD, KeyCreator, Siemens NX, Rhinoceros, SolidCAM, SolidEdge, SOLIDWORKS, SpaceClaim, ZW3D, Onshape12 |
API; scripting13 | C#, Delphi, C++ (CAMIPC / IPC)14 | None | GUI | Yes15 |
| Software | Main programming language | Formats support | Extensibility | External APIs | Robotic middleware support | Primary user interface | Headless simulation |
Infrastructure
Support
| Software | Mailing list | API documentation | Public forum, help system | User manual | Issue tracker | Wiki | Chat |
|---|---|---|---|---|---|---|---|
| Gazebo | Yes16 | Yes17 | Yes18 | Yes19 | Yes20 | No | |
| RoboDK | Yes21 | Yes22 | Yes23 | Yes24 | Yes25 | No | Unknown |
| SimSpark | Yes26 | Yes27 | No | Yes28 | Yes29 | Yes30 | Unknown |
| Webots | No | Yes31 | Yes32 | Yes33 | Yes34 | Yes35 | Yes36 |
| OpenRAVE | Yes37 | Yes38 | Yes39 | Yes40 | Yes39 | Yes41 | Unknown |
| CoppeliaSim | No | Yes42 | Yes43 | Yes44 | Yes45 | Unknown | No |
| ENCY Robot | Yes46 | Yes47 | Yes | Yes48 | Unknown | No | Yes49 |
| Software | Mailing list | API documentation | Public forum, help system | User manual | Issue tracker | Wiki |
Code quality
| Software | Static code checker | Style checker | Test system(s) | Test function coverage | Test branch coverage | Lines of code | Lines of comments | Continuous integration |
|---|---|---|---|---|---|---|---|---|
| Gazebo | cppcheck50 | cpplint50 | gtest and qtest50 | 77.0%50 | 53.3%50 | 320k50 | 106k50 | Jenkins50 |
| RoboDK | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| SimSpark | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| Webots | cppcheck51 | clang-format52 | unit tests53 | 100% of API functions54 | master,55 develop56 | ~200k | ~50k | GitHub Actions |
| OpenRAVE | Unknown | Unknown | Python nose | Unknown | Unknown | Unknown | Unknown | Jenkins57 |
| CoppeliaSim | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| ENCY Robot | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| Software | Static code checker | Style checker | Test system(s) | Test function coverage | Test branch coverage | Lines of code | Lines of comments | Continuous integration |
Features
| Software | CAD to motion | Dynamic collision avoidance | Relative end effectors | Off-line programming | Real-time streaming control of hardware |
|---|---|---|---|---|---|
| Gazebo | Unknown | Yes | Yes | Yes | Yes |
| RoboDK | Yes | Yes | Yes | Yes | Yes |
| SimSpark | Unknown | No | Unknown | No | No |
| Webots | Unknown | Yes | Yes | Yes | Yes |
| OpenRAVE | Unknown | No | Unknown | No | No |
| CoppeliaSim | Unknown | Yes | Yes | Yes | Yes |
| ENCY Robot | Yes58 | Yes59 | Yes (Tool-to-part / part-to-tool)60 | Yes1 | Yes (via ENCY Hyper real-time execution)61 |
| Software | CAD to motion | Dynamic collision avoidance | Relative end effectors | Off-line programming | Real-time streaming control |
Robot families
| Software | UGV (ground mobile robot) | UAV (aerial robots) | AUV (underwater robots) | Robotic arms | Robotic hands (grasping simulation) | Humanoid robots | Human avatars | Full list |
|---|---|---|---|---|---|---|---|---|
| Gazebo | Yes62 | Yes63 | Yes64 | Yes65 | Yes66 | Yes67 | Yes68 | |
| RoboDK | No | No | No | Yes69 | No | No | No | Yes69 |
| SimSpark | Yes | No | No | Maybe | Maybe | Yes | No | |
| Webots | Yes | Yes | Yes70 | Yes | Yes | Yes71 | Yes | Yes72 |
| OpenRAVE | Yes | Unknown | Unknown | Yes | Yes | Yes | Yes | |
| CoppeliaSim | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes73 |
| ENCY Robot | No | No | No | Yes74 | No | No | No | No |
| Software | UGV (ground mobile robot) | UAV (aerial robots) | AUV (underwater robots) | Robotic arms | Robotic hands (grasping simulation) | Humanoid robots | Human avatars | Full list |
Supported actuators
| Software | Generic kinematic chains | Force-controlled motion | Full list | Circular kinematic chains | Kinematically redundant chains | Bifurcated kinematic chains |
|---|---|---|---|---|---|---|
| Gazebo | Yes | Yes | Yes | Yes | Yes | |
| RoboDK | Unknown | Unknown | Unknown | Unknown | Unknown | |
| SimSpark | Yes | No | SimSpark effectors | Unknown | Unknown | Unknown |
| Webots | Yes | Yes | Webots actuators | Yes | Yes | Yes |
| OpenRAVE | Yes | Yes | Joints, Extra Actuators | Yes75 | Yes | Yes76 |
| CoppeliaSim | Yes | Yes | Yes | Yes | Yes | |
| ENCY Robot | Yes77 | No | Unknown | Yes (redundancy / external axes)78 | Unknown | |
| Software | Generic kinematic chains | Force-controlled motion | Full list | Circular kinematic chains | Kinematically redundant chains | Bifurcated kinematic chains |
Supported sensors
| Software | Odometry | IMU | Collision | GPS | Monocular cameras | Stereo cameras | Depth cameras | Omnidirectional cameras | 2D laser scanners | 3D laser scanners | Full list |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Gazebo | Yes | Yes | Yes79 | Yes | Yes80 | Yes | Yes | Yes | Yes81 | Yes81 | |
| RoboDK | Unknown | Unknown | Unknown | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | |
| SimSpark | Yes | Yes | Yes82 | Partial83 | Yes | Partial | Unknown | Unknown | No | No | SimSpark perceptors |
| Webots | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Webots sensors |
| OpenRAVE | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Yes | Yes | |
| CoppeliaSim | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
| ENCY Robot | Unknown | Unknown | Yes84 | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | |
| Software | Odometry | IMU | Collision | GPS | Monocular cameras | Stereo cameras | Depth cameras | Omnidirectional cameras | 2D laser scanners | 3D laser scanners | Full list |
References
References
- "ENCY Robot: Offline robot programming solution". encycam.com. Retrieved 2026-01-07.
- "ENCY: CAD/CAM software for a new generation". encycam.com. Retrieved 2026-01-07.
- "ENCY Robot configurations (2D sketching, 3D modeling)". docs.encycam.com. Retrieved 2026-01-07.
- "Program installation and launch (Windows)". docs.encycam.com. Retrieved 2026-01-07.
- OSRF. "SDF". sdformat.org. Retrieved 2019-04-27.
- "urdf - ROS Wiki". wiki.ros.org. Retrieved 2017-10-06.
- "RoboDK API". GitHub. 22 October 2021.
- "RoboDK Plug-In Interface". GitHub. 16 October 2021.
- However, requires a connection on an X server for 3D rendering
- "Supported programming languages (CAMAPI)". docs.encycam.com. Retrieved 2026-01-07.
- "ENCY Robot configurations (CAD imports list)". docs.encycam.com. Retrieved 2026-01-07.
- "Addin's list (ENCY Robot User Manual)". docs.encycam.com. Retrieved 2026-01-07.
- "CAMAPI (SDK/API documentation)". docs.encycam.com. Retrieved 2026-01-07.
- "Interaction with external applications (CAMIPC)". docs.encycam.com. Retrieved 2026-01-07.
- "CAMIPC can open ENCY without any windows". docs.encycam.com. Retrieved 2026-01-07.
- "Gazebo Community". Retrieved 2019-04-27.
- "Gazebo API". Gazebo Community. Retrieved 2019-04-27.
- "Gazebo Answers". Gazebo Community. Retrieved 2019-04-27.
- "Gazebo Tutorials". Gazebo Community. Archived from the original on 2019-04-29. Retrieved 2019-04-27.
- "Gazebo Issue Tracker". Gazebo Community. Retrieved 2019-04-27.
- RoboDK mailing list
- RoboDK API Documentation
- RoboDK Forum
- RoboDK Documentation
- RoboDK Bug tracker
- SimSpark mailing lists
- "SimSpark client protocols". Archived from the original on 2016-02-25. Retrieved 2015-04-08.
- "SimSpark user manual (Wiki)". Archived from the original on 2015-02-25. Retrieved 2015-04-08.
- SimSpark Tracker
- SimSpark Wiki
- "Webots Reference Manual". Archived from the original on 2016-08-12. Retrieved 2022-09-12.
- "Discussions · cyberbotics/Webots". GitHub.
- Webots User Guide
- Webots issues on GitHub
- Webots technical wiki on GitHub
- Webots Discord channel
- OpenRAVE mailing list
- OpenRAVE API
- OpenRAVE Issue Tracker
- OpenRAVE User Guide
- "OpenRAVE Wiki". Archived from the original on 2017-03-28. Retrieved 2017-03-27.
- CoppeliaSim API
- Coppelia Robotics Forum
- CoppeliaSim User Manual
- Coppelia Robotics bug reports
- "Technical support (registration for update notifications)". docs.encycam.com. Retrieved 2026-01-07.
- "CAMAPI documentation". docs.encycam.com. Retrieved 2026-01-07.
- "ENCY Robot User Manual". docs.encycam.com. Retrieved 2026-01-07.
- "Online features: Collaboration / chat". docs.encycam.com. Retrieved 2026-01-07.
- OSRF. "Gazebo". gazebosim.org. Retrieved 2019-04-27.
- CppCheck
- Clang Format
- Unit tests
- API tests
- Webots master
- Webots develop
- Source
- "ENCY Robot: toolpath calculation / kinematics / simulation". encycam.com. Retrieved 2026-01-07.
- "ENCY Robot: collision avoidance / collision detection". encycam.com. Retrieved 2026-01-07.
- "ENCY Robot: Tool-to-part and part-to-tool". encycam.com. Retrieved 2026-01-07.
- "ENCY Hyper: execute on the real robot in Run Mode (real time)". encycam.com. Retrieved 2026-01-07.
- OSRF. "Gazebo : Tutorial : Beginner: Model Editor". gazebosim.org. Archived from the original on 2019-01-18. Retrieved 2019-04-27.
- OSRF. "Gazebo : Tutorial : Aerodynamics". gazebosim.org. Archived from the original on 2019-05-23. Retrieved 2019-04-27.
- OSRF. "Gazebo : Tutorial : Hydrodynamics". gazebosim.org. Archived from the original on 2019-05-23. Retrieved 2019-04-27.
- OSRF. "Gazebo : ARIAC". gazebosim.org. Archived from the original on 2019-04-27. Retrieved 2019-04-27.
- OSRF. "Gazebo : HAPTIX". gazebosim.org. Archived from the original on 2019-04-27. Retrieved 2019-04-27.
- "DARPA's legacy: Open source simulation for robotics development and testing". Robohub.org. Retrieved 2019-04-27.
- OSRF. "Gazebo : Tutorial : Make an animated model (actor)". gazebosim.org. Archived from the original on 2019-04-28. Retrieved 2019-04-27.
- RoboDK robot library
- including Salamander robot
- including Nao, DARwIn-OP, Fujitsu HOAP2, Kondo KHR-2HV, KHR-3, etc.
- Webots robot models
- CoppeliaSim main features
- "ENCY Robot: complete robotic cell simulation". encycam.com. Retrieved 2026-01-07.
- "OpenRAVE Closed chains". Archived from the original on 2017-03-28. Retrieved 2017-03-27.
- "OpenRAVE Dual-arm example". Archived from the original on 2017-03-28. Retrieved 2017-03-27.
- "ENCY Robot: robot kinematics management". encycam.com. Retrieved 2026-01-07.
- "ENCY Robot: redundant axes / external axes". encycam.com. Retrieved 2026-01-07.
- OSRF. "Gazebo : Tutorial : Contact Sensor". gazebosim.org. Archived from the original on 2019-07-06. Retrieved 2019-04-27.
- OSRF. "Gazebo : Tutorial : Camera Distortion". gazebosim.org. Archived from the original on 2019-07-17. Retrieved 2019-04-27.
- OSRF. "Gazebo : Tutorial : Intermediate: Velodyne". gazebosim.org. Retrieved 2019-04-27.
- Collision detection uses a simplified model
- Possible, no model for noise
- "ENCY Robot: collision detection". encycam.com. Retrieved 2026-01-07.