Legacy remote API

The legacy remote API, is one of several ways an application can connect with CoppeliaSim. It is deprecated as per CoppeliaSim V4.4, in favor of the ZeroMQ remote API.

The legacy 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 legacy 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 legacy 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 legacy remote API can let one or several external applications interact with CoppeliaSim in a stepping (i.e. synchronized with each simulation step) or non-stepping 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 legacy remote API is operating by reading this section.

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

  • the client side (i.e. your application): the legacy remote API on the client side is available for many different programming languages: C/C++, Python, Java, Matlab and Octave. Instructions on how to enable the legacy remote API on the client side are given here.
  • the server side (i.e. CoppeliaSim): the legacy 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 enable the legacy remote API on the server side are given here.