NRP Core  1.4.1
Engine implementations shipped with NRP-core

This page lists 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 Engine Communication Protocols. These are Engine templates implementing all aspects of engine client / server communication for a given protocol.

List of available engines:

  • Gazebo: engine implementation for the Gazebo physics simulator
  • NEST: two different implementations that integrate the NEST Simulator into NRP-core
  • 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.
  • 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.
  • PySim: engine implementation based on the 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.
  • The Virtual Brain: engine implementation based on the Python JSON Engine and TVB Python API
  • Data Transfer Engine: engine implementation designed to transfer data from NRP-core experiments to file or the network.
  • Edlut Engine: engine implementation designed to integrate the EDLUT simulator in NRP-core.
python_json_engine.shutdown
def shutdown()
Definition: python_json_engine.py:104
python_json_engine.reset
def reset()
Definition: python_json_engine.py:99
TransceiverFunction
Holds a single transfer function decorator.
Definition: transceiver_function.h:36
EngineDataPack
Class for input datapacks for transceiver functions, mapped to EngineDataPack python decorator.
Definition: from_engine_datapack.h:38
python_json_engine.initialize
def initialize()
Definition: python_json_engine.py:79
python_grpc_engine.str
str
Definition: python_grpc_engine.py:63
RegisterDataPack
void RegisterDataPack(python::str devName, python::object nodeCollection)
Definition: nrp_nest_python_module.cpp:40
DataPackIdentifier
Identifies a single datapack.
Definition: datapack_interface.h:38
DataPack
Base datapack class.
Definition: datapack.h:36
CreateDataPack
python::object CreateDataPack(python::tuple args, python::dict kwargs)
Definition: nrp_nest_python_module.cpp:34