BrainPy is a highly flexible and extensible framework targeting on the general-purpose Brain Dynamics Programming (BDP). Among its key ingredients, BrainPy supports:
BrainPy supports object-oriented transformations, including JIT compilation, Autograd.
BrainPy provides various numerical integration methods for ODEs, SDEs, DDEs, FDEs, etc.
BrainPy provides a modular and composable programming interface for building dynamics.
BrainPy supports dynamics simulation for various brain objects with parallel supports.
BrainPy supports dynamics training with various machine learning algorithms, like FORCE learning, ridge regression, back-propagation, etc.
BrainPy supports dynamics analysis for low- and high-dimensional systems, including phase plane, bifurcation, linearization, and fixed/slow point analysis.
pip install -U "jax[cpu]" pip install -U brainpy brainpylib # windows, linux, macos
pip install -U "jax[cuda11_local]" -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html pip install -U brainpy brainpylib-cu11x # only on linux
pip install --upgrade "jax[cuda12_local]" -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html pip install -U brainpy brainpylib-cu12x # only on linux
For more information about supported accelerators and platforms, and for other installation details, please see installation section.
BrainPy is still an experimental research project. APIs may be changed over time. Please always keeps in mind what BrainPy version you are using.