.. index:: pair: page; Engine implementations shipped with NRP-core .. _doxid-nrp_engines: Engine implementations shipped with NRP-core ============================================ This page lists :ref:`Engine ` implementations currently available with NRP-core. These implementations provide out-of-the-box functionality for use with NRP-core, and also represent good examples to study for users interested in implementing their own engines. For each engine implementation, a general description of the provided functionality is offered first, followed by the engine configuration parameters, and finally a list of datapack types supported by the engine. Additionally, in order to make it easier to implement new engines, we propose a way to leverage code reusability: for new engine implementations, interested users can therefore refer to one of the available :ref:`Engine Communication Protocols `. These are Engine templates implementing all aspects of engine client / server communication for a given protocol. List of available engines: * :ref:`Gazebo ` : engine implementation for the `Gazebo physics simulator `__ * :ref:`NEST ` : two different implementations that integrate the `NEST Simulator `__ into NRP-core * :ref:`Python JSON Engine ` : generic Python-based mechanism that imports and executes a simulator inside a user-defined python script. Ideal for simulators with a Python API. * :ref:`Python GRPC Engine ` : This engine is similar to the Python JSON Engine but uses GRPC as the communication mechanism. Compared to Python JSON Engine, this kind of engine has a faster data transfer rate. * :ref:`PySim ` : engine implementation based on the :ref:`Python JSON Engine ` wrapping different simulators (Mujoco, Opensim and OpenAI) with a python API. Based on the integrated OpenAI, NRP supports Parallel Learning using different computation nodes or threads. The detailed processes can be seen on the page of Parallel Learning. * :ref:`The Virtual Brain ` : engine implementation based on the :ref:`Python JSON Engine ` and `TVB Python API `__ * :ref:`Data Transfer Engine ` : engine implementation designed to transfer data from NRP-core experiments to file or the network. * :ref:`Edlut Engine ` : engine implementation designed to integrate the `EDLUT `__ simulator in NRP-core. .. toctree:: :hidden: page_datatransfer_engine.rst page_edlut_engine.rst page_engine_comm.rst page_gazebo_engine.rst page_nest_engine.rst page_pysim_engine.rst page_python_grpc_engine.rst page_python_json_engine.rst page_tvb_engine.rst .. rubric:: Related Pages: | :doc:`page_datatransfer_engine` | :doc:`page_edlut_engine` | :doc:`page_engine_comm` | :doc:`page_gazebo_engine` | :doc:`page_gazebo_datapacks` | :doc:`page_gazebo_engine_configuration` | :doc:`page_gazebo_plugins` | :doc:`page_nest_engine` | :doc:`page_nest_json` | :doc:`page_nest_server` | :doc:`page_pysim_engine` | :doc:`page_python_grpc_engine` | :doc:`page_python_json_engine` | :doc:`page_tvb_engine`