Brian 2 can generate code in a so-called "standalone mode", where it generates a full set of code files that encapsulate the full simulation without references to external libraries (apart from the standard library). Furthermore, it allows to combine high-level simulation code (differential equations, etc.) with user-specified low-level functions written in the target language (e.g. C++). This can be used to connect a neural simulation to external input (e.g. from a camera or a microphone) or to actuators (e.g. a motor). These features make Brian 2 potentially highly suited to write neural simulation code that runs on an external device such as a robot. However, currently the simulation time advances in fixed time step, completely independent from the "real time". To make Brian more useful in such contexts, we would therefore like two support
two modes of "realtime" simulation:
- a mechanism that slows down a simulation so that its progress matches the realtime
- a mechanism that adapts the simulation time step so that it matches the real time that has passed since the last update
Skills: C++ and Python programming, experience with Brian or other neural simulators helpful
Mentors: Marcel Stimberg, Dan Goodman