V-REP's dynamics module currently supports four different physics engines: the Bullet physics library, the Open Dynamics Engine, the Vortex Dynamics engine and the Newton Dynamics engine. At any time, the user is free to quickly switch from one engine to the other according to his/her simulation needs. The reason for this diversity in physics engine support is that physics simulation is a complex task, that can be achieved with various degrees of precision, speed, or with support of diverse features:

  • Bullet physics library: an open source physics engine featuring 3D collision detection, rigid body dynamics, and soft body dynamics (feature that is currently not supported in V-REP). It is used in games, and in visual effects in movies. It is often considered as a game physics engine.
  • [Bullet Physics]

  • Open Dynamics Engine (ODE): an open source physics engine with two main components: rigid body dynamics and collision detection. It has been used in many applications and games. It is often considered as a game physics engine.
  • [Open Dynamics Engine]

  • Vortex Dynamics: a closed source, commercial physics engine producing high fidelity physics simulations. Vortex offers real-world parameters (i.e. corresponding to physical units) for a large number of physical properties, making this engine both realistic and precise. Vortex is mainly used in high performance/precision industrial and research applications. The Vortex plugin for V-REP is based on Vortex Studio Essentials, which requires each user to register with CM Labs, for a free license key.
  • [Vortex Dynamics]

  • Newton Dynamics: Newton Dynamics is a cross-platform life-like physics simulation library. It implements a deterministic solver, which is not based on traditional LCP or iterative methods, but possesses the stability and speed of both respectively. This feature makes Newton Dynamics a tool not only for games, but also for any real-time physics simulation. Current plugin implementation is a BETA version.
  • [Newton Dynamics]

    The dynamics module allows simulating interactions between objects that are near to real-world object interactions. It allows objects to fall, collide, bounce back, but it also allows a manipulator to grasp objects, a conveyor belt to drive parts forward, or a vehicle to roll in a realistic fashion over uneven terrain. Following figures illustrate a dynamic simulation:

    [Dynamic simulation]

    Unlike many other simulation software packages, V-REP is not a pure dynamics simulator. It can rather be seen as a hybrid simulator that combines kinematics and dynamics in order to obtain the best performance for various simulation scenarios. Nowadays, physics engines are still relying on many approximations and are relatively imprecise and slow, and wherever possible you should try to use kinematics instead (e.g. for robotic manipulators) and only rely on dynamics where otherwise not feasible (e.g. a robotic manipulator's gripper). If you are simulating a mobile robot that is not supposed to collide or physically interact with its environment (which most mobile robots are anyway very rarely supposed to do) and that is operating exclusively on flat ground (which groups the vast majority of mobile robots), then try rather using kinematic or geometric calculations to simulate the robot's movement. The result will be faster and more accurate.

    Some results of the dynamics module can be recorded by graph objects. Refer to graphs and graph data stream types for more information about how to record dynamics data.

    Recommended topics

  • Related API functions
  • Designing dynamic simulations
  • General dynamics properties