Legacy remote API
The legacy remote API, or just remote API, should not be mixed-up with the BØ-based remote API, which is a newer version of the remote API that is more flexible, easier to use and most importantly, much simpler to extend.
The remote API is part of the CoppeliaSim API framework.
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, a Matlab/Octave program, or a Lua script. 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 synchronous* or asynchronous* way (asynchronous by default), and even remote control of the simulator is supported (e.g. remotely loading a scene, starting, pausing or stopping a simulation for instance).
The word Synchronous is used in the sense that each simulation pass runs synchronously with the remote API application (i.e. the simulator will wait for a trigger signal from a client to start next simulation pass at a time t+dt). This is different from synchronous/asynchronous in the sense of blocking/non-blocking operation. The remote API also supports blocking and non-blocking operations.
The remote API functionality comes in 2 separate entities, that are interacting via socket communication: