You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.
BrainPy f7f5d81645 Merge pull request 'V2.0.0' (#25) from V2.0.0 into master 3 weeks ago
brainpy fix bugs 3 weeks ago
brainpy_extensions update brainpylib 3 weeks ago
docs update quickstart docs 3 weeks ago
examples update highdim analysis docs and apis 4 weeks ago
images update logo and apis 3 weeks ago
tests tell users where tests are located 1 month ago
.gitignore update analysis example, add CANN example for high-dim analysis 1 month ago
.travis.yml move tests into 'brainpy' 3 months ago
LICENSE GPL v3 LICENSE 1 year ago Update installation 1 year ago update README 3 weeks ago
changelog.rst update changelog 3 weeks ago
requirements-dev.txt update dependencies 1 month ago
requirements-doc.txt update dependencies 1 month ago
requirements.txt update dependencies 1 month ago update changelog 3 weeks ago

Header image of BrainPy - brain dynamics programming in Python.

LICENSE Documentation PyPI version Build Status

👏👏 CHEERS: A new version of BrainPy (>=2.0.0) has been released! 👏👏

Why use BrainPy

BrainPy is an integrative framework for computational neuroscience and brain-inspired computation based on the Just-In-Time (JIT) compilation (built on top of JAX). Core functions provided in BrainPy includes

  • JIT compilation for class objects.
  • Numerical solvers for ODEs, SDEs, and others.
  • Dynamics simulation tools for various brain objects, like neurons, synapses, networks, soma, dendrites, channels, and even more.
  • Dynamics analysis tools for differential equations, including phase plane analysis and bifurcation analysis, and linearization analysis.
  • Seamless integration with deep learning models.
  • And more ......

BrainPy is designed to effectively satisfy your basic requirements:

  • Pythonic: BrainPy is based on Python language and has a Pythonic coding style.
  • Flexible and transparent: BrainPy endows the users with full data/logic flow control. Users can code any logic they want with BrainPy.
  • Extensible: BrainPy allows users to extend new functionality just based on Python code. Almost every part of the BrainPy system can be extended to be customized.
  • Efficient: All codes in BrainPy can be just-in-time compiled (based on JAX) to run on CPU, GPU, or TPU devices, thus guaranteeing its running efficiency.

How to use BrainPy

Step 1: installation

BrainPy is based on Python (>=3.6), and the following packages are required to be installed to use BrainPy: numpy >= 1.15, matplotlib >= 3.4, and jax >= 0.2.10 (how to install jax?)

BrainPy can be installed on Linux (Ubuntu 16.04 or later), macOS (10.12 or later), and Windows platforms. Use the following instructions to install brainpy:

pip install brain-py -U

For the full installation details please see documentation: Quickstart/Installation

Step 3: inspirational examples

Here we list several examples of BrainPy. For more detailed examples and tutorials please see BrainModels or BrainPy-Examples.

Neuron models

See brainmodels.neurons to find more.

Synapse models

See brainmodels.synapses to find more.

Network models

Dynamics training

Low-dimensional dynamics analysis

High-dimensional dynamics analysis

BrainPy V1

If you are using brainpy==1.x, you can find documentation, examples, and models through the following links:

The changes from brainpy==1.x to brainpy==2.x can be inspected through API documentation: release notes.