Skip to main content

BrainPy: Brain Dynamics Programming in Python

Project description

Header image of BrainPy - brain dynamics programming in Python.

Supported Python Version LICENSE Documentation PyPI version Continuous Integration Test Coverage

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

Installation

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

pip install brainpy -U

If you want to use BrainPy with different hardware support, please install the corresponding version of BrainPy:

pip install brainpy[cpu] -U  # install with CPU support only
pip install brainpy[cuda12] -U  # install with CUDA 12.x support
pip install brainpy[cuda13] -U  # install with CUDA 13.x support
pip install brainpy[tpu] -U  # install with TPU support

Install the brainpy with the ecosystem packages:

pip install BrainX -U

Using BrainPy with Binder

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

Binder

Ecosystem

Citing

If you are using brainpy >= 2.0, please consider citing the corresponding paper:

@article {10.7554/eLife.86365,
    article_type = {journal},
    title = {BrainPy, a flexible, integrative, efficient, and extensible framework for general-purpose brain dynamics programming},
    author = {Wang, Chaoming and Zhang, Tianqiu and Chen, Xiaoyu and He, Sichao and Li, Shangyang and Wu, Si},
    editor = {Stimberg, Marcel},
    volume = 12,
    year = 2023,
    month = {dec},
    pub_date = {2023-12-22},
    pages = {e86365},
    citation = {eLife 2023;12:e86365},
    doi = {10.7554/eLife.86365},
    url = {https://doi.org/10.7554/eLife.86365},
    abstract = {Elucidating the intricate neural mechanisms underlying brain functions requires integrative brain dynamics modeling. To facilitate this process, it is crucial to develop a general-purpose programming framework that allows users to freely define neural models across multiple scales, efficiently simulate, train, and analyze model dynamics, and conveniently incorporate new modeling approaches. In response to this need, we present BrainPy. BrainPy leverages the advanced just-in-time (JIT) compilation capabilities of JAX and XLA to provide a powerful infrastructure tailored for brain dynamics programming. It offers an integrated platform for building, simulating, training, and analyzing brain dynamics models. Models defined in BrainPy can be JIT compiled into binary instructions for various devices, including Central Processing Unit (CPU), Graphics Processing Unit (GPU), and Tensor Processing Unit (TPU), which ensures high running performance comparable to native C or CUDA. Additionally, BrainPy features an extensible architecture that allows for easy expansion of new infrastructure, utilities, and machine-learning approaches. This flexibility enables researchers to incorporate cutting-edge techniques and adapt the framework to their specific needs},
    journal = {eLife},
    issn = {2050-084X},
    publisher = {eLife Sciences Publications, Ltd},
}

If you want to cite brainpy 1.0, please consider using the corresponding paper:

@inproceedings{wang2021just,
    title={A Just-In-Time Compilation Approach for Neural Dynamics Simulation},
    author={Wang, Chaoming and Jiang, Yingqian and Liu, Xinyu and Lin, Xiaohan and Zou, Xiaolong and Ji, Zilong and Wu, Si},
    booktitle={International Conference on Neural Information Processing},
    pages={15--26},
    year={2021},
    organization={Springer}
}

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

brainpy-2.8.0.tar.gz (836.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

brainpy-2.8.0-py3-none-any.whl (1.1 MB view details)

Uploaded Python 3

File details

Details for the file brainpy-2.8.0.tar.gz.

File metadata

  • Download URL: brainpy-2.8.0.tar.gz
  • Upload date:
  • Size: 836.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for brainpy-2.8.0.tar.gz
Algorithm Hash digest
SHA256 f48eb30a2d2247b20d9ca0d3b9aecb19cdb907ba2706d7b50b848eb7d2a58814
MD5 ca00302e09da2fea00eca7cc9f9b02e1
BLAKE2b-256 47ebb54d75fad9c1b465d6e1ac2268f02fec2bdd5e5202349800ff632f0b756e

See more details on using hashes here.

File details

Details for the file brainpy-2.8.0-py3-none-any.whl.

File metadata

  • Download URL: brainpy-2.8.0-py3-none-any.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for brainpy-2.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 01c1e1fbf7dfaa078e6c201a0dfd71cd865d77603764a15ed58567c7c2d9176a
MD5 9e4b1fcb55d693f350a21b257fec13e2
BLAKE2b-256 bde5b76f6c07ae4a3218b7cae5d5e0670fbfd21e308bb4b800716365f7626dc9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page