Skip to content

brainpy/BrainPy

Header image of BrainPy - brain dynamics programming in Python.

Supported Python Version LICENSE Documentation PyPI version Continuous Integration Continuous Integration with Models

BrainPy is a flexible, efficient, and extensible framework for computational neuroscience and brain-inspired computation based on the Just-In-Time (JIT) compilation (built on top of JAX, Taichi, Numba, and others). It provides an integrative ecosystem for brain dynamics programming, including brain dynamics building, simulation, training, analysis, etc.

Installation

BrainPy is based on Python (>=3.8) and can be installed on Linux (Ubuntu 16.04 or later), macOS (10.12 or later), and Windows platforms.

For detailed installation instructions, please refer to the documentation: Quickstart/Installation

Using BrainPy with docker

We provide a docker image for BrainPy. You can use the following command to pull the image:

$ docker pull brainpy/brainpy:latest

Then, you can run the image with the following command:

$ docker run -it --platform linux/amd64 brainpy/brainpy:latest

Using BrainPy with Binder

We provide a Binder environment for BrainPy. You can use the following button to launch the environment:

Binder

Brain Dynamics Programming Ecosystem

We are building an ecosystem for bain dynamics programming (BDP), evolving from our previously experimental BrainPy package.

The BDP ecosystem is a collection of tools, libraries, and frameworks that can be used to build brain dynamics models and applications.

The BDP ecosystem is designed to be modular, so you can use as much or as little of it as you need.

The details for this ecosystem please see: https://ecosystem-for-brain-dynamics.readthedocs.io/

We welcome contributions from the community, so if you have an idea for a new tool or library, please let us know! Please email us at: chao.brain@qq.com.

Ecosystem

Citing

BrainPy is developed by a team in Neural Information Processing Lab at Peking University, China. Our team is committed to the long-term maintenance and development of the project.

If you are using brainpy, please consider citing the corresponding papers.

Ongoing development plans

We highlight the key features and functionalities that are currently under active development.

We also welcome your contributions (see Contributing to BrainPy).

  • model and data parallelization on multiple devices for dense connection models
  • model parallelization on multiple devices for sparse spiking network models
  • data parallelization on multiple devices for sparse spiking network models
  • pipeline parallelization on multiple devices for sparse spiking network models
  • multi-compartment modeling
  • measurements, analysis, and visualization methods for large-scale spiking data
  • Online learning methods for large-scale spiking network models
  • Classical plasticity rules for large-scale spiking network models