Legacy remote API

The legacy remote API, or remote API in short, is one of several ways an application can connect with CoppeliaSim.

The remote API allows to control a simulation (or the simulator itself) from an external application or a remote hardware (e.g. real robot, remote computer, etc.). The CoppeliaSim remote API is composed by approximately one hundred specific functions and one generic function, that can be called from a C/C++ application, a Python script, a Java application or a Matlab/Octave program. The remote API functions are interacting with CoppeliaSim via socket communication (or, optionally, via shared memory). All this happens in a hidden fashion to the user. The remote API can let one or several external applications interact with CoppeliaSim in a stepped (i.e. synchronized with each simulation step) or non-stepped way (i.e. the normal operation mode), and even remote control of the simulator is supported (e.g. remotely loading a scene, starting, pausing or stopping a simulation for instance).

Make sure you understand how the remote API is operating by reading this section. Also have a look at the external controller tutorial.

The remote API functionality comes in 2 separate entities, that are interacting via socket communication:

  • the client side (i.e. your application): the remote API on the client side is available for many different programming languages. Currently following languages are supported: C/C++, Python, Java, Matlab and Octave. Bindings for other languages can easily be created by yourself. Instructions on how to enable the remote API on the client side are given here.
  • the server side (i.e. CoppeliaSim): the remote API on the server side is implemented via a CoppeliaSim plugin that is loaded by CoppeliaSim by default: simExtRemoteApi.dll, libsimExtRemoteApi.dylib or libsimExtRemoteApi.so. The plugin project files are located here. Instructions on how to enabled the remote API on the server side are given here.