CoppeliaSim is cross-platform, and allows the creation of portable, scalable and easy maintainable content: a single portable file can contain a fully functional model (or scene), including control code.
Simulator and simulations are fully customizable, with 5 programming approaches that are mutually compatible and that can even work hand-in-hand. 7 supported programming languages.
Regular API: Python, Lua & C/C++
ROS interfaces: publishers, subscribers & service calls. Extendable
Control a simulation or the simulator itself remotely (e.g. from a real robot or another PC)
4 physics engines (Bullet Physics, ODE, Newton and Vortex Dynamics) for fast and customizable dynamics calculations, to simulate real-world physics and object interactions (collision response, grasping, etc.).
Inverse/forward kinematics calculations for any type of mechanism (branched, closed, redundant, containing nested loops, etc.). An embeddable version of the IK/FK algorithms is available.
Fast interference checking between any meshe, octree, point cloud, or collection of those.
Fast and exact minimum distance calculation between any meshe (convex, concave, open, closed), octree, point cloud, or collection of those.
CoppeliaSim supports customizable particles that can be used to simulate air or water jets, jet engines, propellers, etc.
Powerful, realistic and exact volumetric proximity sensor simulation: performs an exact minimum distance calculation within a customizable detection volume. Operates on meshes, octrees and point clouds.
Simulation of vision sensors with many image processing options, fully customizable and extendable (e.g. via plugin).
Anything - from sensors or actuators, to whole robotic systems - can be built within CoppeliaSim by combining basic objects and linking various functionality via embedded scripts. Every scene object can have its own embedded script attached.
Path planning / motion planning is supported in a very flexible way via the OMPL library wrapped in a plugin for CoppeliaSim.
A large variety of recordable data streams (including user-defined) can display time-graphs, or can be combined with each other to form x/y-graphs, or 3D curves.
Special mesh edit modes are supported (including a semi-automatic primitive shape extraction method, convex decomposition, mesh decimation, etc.)
Following file formats are supported (also when called through the API): URDF, COLLADA, DXF, OBJ, STL, glTF, etc.
The RRS-1 interface specifications are fully implemented, the Reflexxes Motion Library and the Ruckig Online Trajectory Generator are fully supported.
The scene composition is intuitively visualized in a scene hierarchy view, indicating object names, types, associated control scripts, loop closures, selection and visibility states, warnings, etc.
The integrated model browser supports drag-and-drop operations (also during simulation!) for convenient scene composition. The available model library, updated at each release, can be easily extended by the user.
Full interaction also during simulations: models, together with their associated behavior (i.e. scripts) can be shifted, rotated, copy/pasted, scaled, erased, etc. without having to adjust any code.
Educational entities (hobbyists, students, teachers, professors, schools and Universities) can use CoppeliaSim Edu for free. The source code of all elements is available. Refer to the licensing page for details.
Free Player Version
A free CoppeliaSim player version is available, and allows running and interacting with CoppeliaSim simulations.