brian2

Brian is a free, open source simulator for spiking neural networks.

https://github.com/brian-team/brian2

Science Score: 77.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 5 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
    16 of 71 committers (22.5%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.8%) to scientific vocabulary

Keywords

biological-simulations brian brian2 code-generation computational-neuroscience differential-equations neuroscience python science simulation-framework spiking-neural-networks

Keywords from Contributors

mesh optimizing-compiler neuroimaging interactive gtk sensitivity-analysis sequences salib generic projection
Last synced: 4 months ago · JSON representation ·

Repository

Brian is a free, open source simulator for spiking neural networks.

Basic Info
  • Host: GitHub
  • Owner: brian-team
  • License: other
  • Language: Python
  • Default Branch: master
  • Homepage: http://briansimulator.org
  • Size: 36 MB
Statistics
  • Stars: 1,048
  • Watchers: 44
  • Forks: 243
  • Open Issues: 191
  • Releases: 0
Topics
biological-simulations brian brian2 code-generation computational-neuroscience differential-equations neuroscience python science simulation-framework spiking-neural-networks
Created about 13 years ago · Last pushed 4 months ago
Metadata Files
Readme License Code of conduct Citation Authors Codemeta

README.md

Brian2

A clock-driven simulator for spiking neural networks

Brian is a free, open source simulator for spiking neural networks. It is written in the Python programming language and is available on almost all platforms. We believe that a simulator should not only save the time of processors, but also the time of scientists. Brian is therefore designed to be easy to learn and use, highly flexible and easily extensible.

Please report issues at the github issue tracker (https://github.com/brian-team/brian2/issues) or in the Brian forum (https://brian.discourse.group).

Documentation for Brian2 can be found at http://brian2.readthedocs.org

Brian2 is released under the terms of the CeCILL 2.1 license.

If you use Brian for your published research, we kindly ask you to cite our article:

Stimberg, M, Brette, R, Goodman, DFM. “Brian 2, an Intuitive and Efficient Neural Simulator.” eLife 8 (2019): e47314. doi: 10.7554/eLife.47314.

PyPI version Conda version Debian package Fedora package Spack AUR version

Docker Pulls DOI Software Heritage (repository) Software Heritage (release)

Contributor Covenant Discourse topics Discourse chat Neuromorphic Computing code style: black

Quickstart

Try out Brian on the mybinder service:

mybinder

Dependencies

The following packages need to be installed to use Brian 2 (cf. pyproject.toml):

  • Python >= 3.10
  • NumPy >=1.23
  • SymPy >= 1.2
  • Cython >= 0.29.21
  • PyParsing
  • Jinja2 >= 2.7
  • setuptools >= 61
  • py-cpuinfo (only required on Windows)

For full functionality, you might also want to install:

  • GSL >=1.16
  • SciPy >=0.13.3
  • Matplotlib >= 2.0

To build the documentation:

  • Sphinx (>=7)

To run the test suite:

  • pytest
  • pytest-xdist (optional)

Testing status for master branch

Test status on GitHub Actions Publish status on GitHub Actions Test coverage Documentation Status

Owner

  • Name: Brian simulator
  • Login: brian-team
  • Kind: organization
  • Location: Paris, France

Citation (CITATION.cff)

cff-version: 1.2.0

message: If you use this software, please cite it using these metadata.

title: Brian simulator

abstract: A clock-driven simulator for spiking neural networks

authors:
  - family-names: Stimberg
    given-names: Marcel
    orcid: https://orcid.org/0000-0002-2648-4790
  - family-names: Goodman
    given-names: Dan F. M.
    orcid: https://orcid.org/0000-0003-1007-6474
  - family-names: Evans
    given-names: Benjmain
    orcid: https://orcid.org/0000-0002-1734-6070
  - family-names: Brette
    given-names: Romain
    orcid: https://orcid.org/0000-0003-0110-1623
  - name: Brian contributors

version: 2.9.0

date-released: '2025-05-14'

identifiers:
  - description: This is the collection of archived snapshots of all versions of Brian 2
    type: doi
    value: 10.5281/zenodo.654861
  - description: This is the archived snapshot of version 2.9.0 of Brian 2
    type: doi
    value: 10.5281/zenodo.15423251
  - description: Software Heritage identifier for version 2.9.0 of Brian 2
    type: swh
    value: swh:1:rel:bfa0c5c9b838a4d42e98b2e0d7cb7a648df6f333

license: CECILL-2.1

repository-code: https://github.com/brian-team/brian2

preferred-citation:
  authors:
    - family-names: Stimberg
      given-names: Marcel
      orcid: https://orcid.org/0000-0002-2648-4790
    - family-names: Goodman
      given-names: Dan F. M.
      orcid: https://orcid.org/0000-0003-1007-6474
    - family-names: Brette
      given-names: Romain
      orcid: https://orcid.org/0000-0003-0110-1623
  title: Brian 2, an intuitive and efficient neural simulator
  journal: eLife
  month: 8
  year: 2019
  volume: 8
  doi: 10.7554/eLife.47314
  type: article

CodeMeta (codemeta.json)

{
  "@context": "https://w3id.org/codemeta/3.0",
  "@type": "SoftwareSourceCode",
  "targetProduct": {
    "@type": "SoftwareLibrary",
    "name": "brian2",
    "runtimePlatform": [
      "Python",
      "Python 3"
    ]
  },
  "maintainer": [
    {
      "@id": "https://orcid.org/0000-0002-2648-4790"
    }
  ],
  "author": [
    {
      "@id": "https://orcid.org/0000-0002-2648-4790",
      "@type": "Person",
      "familyName": "Stimberg",
      "givenName": "Marcel",
      "identifier": "https://github.com/mstimberg"
    },
    {
      "@id": "https://orcid.org/0000-0003-1007-6474",
      "@type": "Person",
      "familyName": "Goodman",
      "givenName": "Dan F. M.",
      "identifier": "https://github.com/thesamovar"
    },
    {
      "@id": "https://orcid.org/0000-0002-1734-6070",
      "@type": "Person",
      "familyName": "Evans",
      "givenName": "Benjamin D.",
      "identifier": "https://github.com/bdevans"
    },
    {
      "@id": "https://orcid.org/0000-0003-0110-1623",
      "@type": "Person",
      "familyName": "Brette",
      "givenName": "Romain",
      "identifier": "https://github.com/romainbrette"
    }
  ],
  "codeRepository": "https://github.com/brian-team/brian2",
  "continuousIntegration": "https://github.com/brian-team/brian2/actions",
  "issueTracker": "https://github.com/brian-team/brian2/issues",
  "keywords": [
    "biological neural networks",
    "computational neuroscience",
    "neural networks",
    "research",
    "simulation",
    "spiking neurons"
  ],
  "operatingSystem": "OS Independent",
  "softwareHelp": "https://brian2.readthedocs.io/",
  "developmentStatus": "active",
  "description": "A clock-driven simulator for spiking neural networks",
  "license": "https://spdx.org/licenses/CECILL-2.1",
  "name": "Brian simulator",
  "url": "https://briansimulator.org",
  "programmingLanguage": [
    "Python"
  ],
  "runtimePlatform": [
    "Python",
    "Python 3"
  ],
  "softwareRequirements": [
    {
      "name": "numpy",
      "@type": "SoftwareApplication",
      "runtimePlatform": "Python 3",
      "version": ">=1.23.5"
    },
    {
      "name": "cython",
      "@type": "SoftwareApplication",
      "runtimePlatform": "Python 3",
      "version": ">=0.29.21"
    },
    {
      "name": "sympy",
      "@type": "SoftwareApplication",
      "runtimePlatform": "Python 3",
      "version": ">=1.2"
    },
    {
      "name": "pyparsing",
      "@type": "SoftwareApplication",
      "runtimePlatform": "Python 3"
    },
    {
      "name": "jinja2",
      "@type": "SoftwareApplication",
      "runtimePlatform": "Python 3",
      "version": ">=2.7"
    },
    {
      "name": "py-cpuinfo",
      "@type": "SoftwareApplication",
      "runtimePlatform": "Python 3"
    },
    {
      "name": "setuptools",
      "@type": "SoftwareApplication",
      "runtimePlatform": "Python 3",
      "version": ">=61"
    },
    {
      "name": "packaging",
      "@type": "SoftwareApplication",
      "runtimePlatform": "Python 3"
    }
  ],
  "contributor": [
    {
      "@type": "Person",
      "givenName": "Dan",
      "familyName": "Goodman",
      "identifier": "https://github.com/thesamovar"
    },
    {
      "@type": "Person",
      "givenName": "Marcel",
      "familyName": "Stimberg",
      "identifier": "https://github.com/mstimberg"
    },
    {
      "@type": "Person",
      "givenName": "Romain",
      "familyName": "Brette",
      "identifier": "https://github.com/romainbrette"
    },
    {
      "@type": "Person",
      "givenName": "Cyrille",
      "familyName": "Rossant",
      "identifier": "https://github.com/rossant"
    },
    {
      "@type": "Person",
      "givenName": "Victor",
      "familyName": "Benichoux",
      "identifier": "https://github.com/victorbenichoux"
    },
    {
      "@type": "Person",
      "givenName": "Pierre",
      "familyName": "Yger",
      "identifier": "https://github.com/yger"
    },
    {
      "@type": "Person",
      "givenName": "Werner",
      "familyName": "Beroux",
      "identifier": "https://github.com/wernight"
    },
    {
      "@type": "Person",
      "givenName": "Konrad",
      "familyName": "Wartke",
      "identifier": "https://github.com/Kwartke"
    },
    {
      "@type": "Person",
      "givenName": "Daniel",
      "familyName": "Bliss",
      "identifier": "https://github.com/dabliss"
    },
    {
      "@type": "Person",
      "givenName": "Jan-Hendrik",
      "familyName": "Schleimer",
      "identifier": "https://github.com/ttxtea"
    },
    {
      "@type": "Person",
      "givenName": "Moritz",
      "familyName": "Augustin",
      "identifier": "https://github.com/moritzaugustin"
    },
    {
      "@type": "Person",
      "givenName": "Romain",
      "familyName": "Caz",
      "identifier": "https://github.com/rcaze"
    },
    {
      "@type": "Person",
      "givenName": "Dominik",
      "familyName": "Krzemiski",
      "identifier": "https://github.com/dokato"
    },
    {
      "@type": "Person",
      "givenName": "Martino",
      "familyName": "Sorbaro",
      "identifier": "https://github.com/martinosorb"
    },
    {
      "@type": "Person",
      "givenName": "Benjamin",
      "familyName": "Evans",
      "identifier": "https://github.com/bdevans"
    },
    {
      "@type": "Person",
      "givenName": "Meng",
      "familyName": "Dong",
      "identifier": "https://github.com/whenov"
    },
    {
      "@type": "Person",
      "givenName": "Alex",
      "familyName": "Seeholzer",
      "identifier": "https://github.com/flinz"
    },
    {
      "@type": "Person",
      "givenName": "Daan",
      "familyName": "Sprenkels",
      "identifier": "https://github.com/dsprenkels"
    },
    {
      "@type": "Person",
      "givenName": "Edward",
      "familyName": "Betts",
      "identifier": "https://github.com/EdwardBetts"
    },
    {
      "@type": "Person",
      "givenName": "Thomas",
      "familyName": "McColgan",
      "identifier": "https://github.com/phreeza"
    },
    {
      "@type": "Person",
      "givenName": "Charlee",
      "familyName": "Fletterman",
      "identifier": "https://github.com/CharleeSF"
    },
    {
      "@type": "Person",
      "givenName": "Mihir",
      "familyName": "Vaidya",
      "identifier": "https://github.com/MihirVaidya94"
    },
    {
      "@type": "Person",
      "givenName": "Teo",
      "familyName": "Stocco",
      "identifier": "https://github.com/zifeo"
    },
    {
      "@type": "Person",
      "givenName": "Dylan Richard",
      "familyName": "Muir",
      "identifier": "https://github.com/DylanMuir"
    },
    {
      "@type": "Person",
      "givenName": "Adrien F.",
      "familyName": "Vincent",
      "identifier": "https://github.com/afvincent"
    },
    {
      "@type": "Person",
      "givenName": "Kapil",
      "familyName": "Kumar",
      "identifier": "https://github.com/kapilkd13"
    },
    {
      "@type": "Person",
      "givenName": "Matthieu",
      "familyName": "Recugnat",
      "identifier": "https://github.com/matrec4"
    },
    {
      "@type": "Person",
      "givenName": "Paul",
      "familyName": "Brodersen",
      "identifier": "https://github.com/paulbrodersen"
    },
    {
      "@type": "Person",
      "givenName": "Guillaume",
      "familyName": "Dumas",
      "identifier": "https://github.com/deep-introspection"
    },
    {
      "@type": "Person",
      "givenName": "Aleksandra",
      "familyName": "Teska",
      "identifier": "https://github.com/alTeska"
    },
    {
      "@type": "Person",
      "givenName": "Vigneswaran",
      "familyName": "Chandrasekaran",
      "identifier": "https://github.com/Vigneswaran-Chandrasekaran"
    },
    {
      "@type": "Person",
      "givenName": "Rahul Kumar",
      "familyName": "Gupta",
      "identifier": "https://github.com/rahuliitg"
    },
    {
      "@type": "Person",
      "givenName": "Rike-Benjamin",
      "familyName": "Schuppner",
      "identifier": "https://github.com/Debilski"
    },
    {
      "@type": "Person",
      "givenName": "Denis",
      "familyName": "Alevi",
      "identifier": "https://github.com/denisalevi"
    },
    {
      "@type": "Person",
      "givenName": "Dominik",
      "familyName": "Spicher",
      "identifier": "https://github.com/dspicher"
    },
    {
      "@type": "Person",
      "givenName": "Felix B.",
      "familyName": "Kern",
      "identifier": "https://github.com/kernfel"
    },
    {
      "@type": "Person",
      "givenName": "Jan",
      "familyName": "Marker",
      "identifier": "https://github.com/jangmarker"
    },
    {
      "@type": "Person",
      "givenName": "Rohith Varma",
      "familyName": "Buddaraju",
      "identifier": "https://github.com/rohithvarma3000"
    },
    {
      "@type": "Person",
      "givenName": "Kyle",
      "familyName": "Johnsen",
      "identifier": "https://github.com/kjohnsen"
    },
    {
      "@type": "Person",
      "givenName": "Leonardo",
      "familyName": "Schwarz",
      "identifier": "https://github.com/leoschwarz"
    },
    {
      "@type": "Person",
      "givenName": "Abolfazl",
      "familyName": "Ziaeemehr",
      "identifier": "https://github.com/Ziaeemehr"
    },
    {
      "@type": "Person",
      "givenName": "tienne",
      "familyName": "Mollier",
      "identifier": "https://github.com/emollier"
    },
    {
      "@type": "Person",
      "givenName": "Sebastian",
      "familyName": "Schmitt",
      "identifier": "https://github.com/schmitts"
    },
    {
      "@type": "Person",
      "givenName": "Felix C.",
      "familyName": "Stegerman",
      "identifier": "https://github.com/obfusk"
    },
    {
      "@type": "Person",
      "givenName": "Oleksii",
      "familyName": "Leonov",
      "identifier": "https://github.com/aleksejleonov"
    },
    {
      "@type": "Person",
      "givenName": "Ankur",
      "familyName": "Sinha",
      "identifier": "https://github.com/sanjayankur31"
    },
    {
      "@type": "Person",
      "givenName": "Guy",
      "familyName": "Singer",
      "identifier": "https://github.com/guy-singer"
    },
    {
      "@type": "Person",
      "givenName": "Samuele De",
      "familyName": "Cristofaro",
      "identifier": "https://github.com/Samuele-DeCristofaro"
    },
    {
      "@type": "Person",
      "givenName": "Sagar",
      "familyName": "Shahari",
      "identifier": "https://github.com/maverick4code"
    },
    {
      "@type": "Person",
      "givenName": "Palash",
      "familyName": "Chitnavis",
      "identifier": "https://github.com/PalashChitnavis"
    }
  ],
  "version": "2.9.0",
  "softwareVersion": "2.9.0"
}

GitHub Events

Total
  • Create event: 68
  • Commit comment event: 1
  • Issues event: 16
  • Watch event: 111
  • Delete event: 57
  • Issue comment event: 157
  • Push event: 95
  • Pull request review comment event: 59
  • Pull request review event: 71
  • Pull request event: 146
  • Fork event: 23
Last Year
  • Create event: 68
  • Commit comment event: 1
  • Issues event: 16
  • Watch event: 111
  • Delete event: 57
  • Issue comment event: 157
  • Push event: 95
  • Pull request review comment event: 59
  • Pull request review event: 71
  • Pull request event: 146
  • Fork event: 23

Committers

Last synced: 8 months ago

All Time
  • Total Commits: 5,687
  • Total Committers: 71
  • Avg Commits per committer: 80.099
  • Development Distribution Score (DDS): 0.245
Past Year
  • Commits: 174
  • Committers: 10
  • Avg Commits per committer: 17.4
  • Development Distribution Score (DDS): 0.224
Top Committers
Name Email Commits
Marcel Stimberg m****g@i****r 4,293
thesamovar d****n@e****r 661
CharleeSF c****e@g****m 177
Ben Evans b****s@g****m 104
Romain Brette r****e@e****r 93
Rohith Varma Buddaraju r****u@g****m 58
Sebastian Schmitt s****t@k****e 35
dependabot[bot] 4****] 33
Vigneswaran 1****2@s****n 25
Victor Benichoux v****x@e****r 20
Denis Alevi m****l@d****e 14
Pierre Yger p****e@y****t 13
thesamovar o****z 9
Thomas McColgan t****n@g****m 9
dokato r****2@g****m 8
Abolfazl Ziaeemehr a****r@g****m 8
Moritz Augustin a****n@n****e 7
pyger p****r@g****m 6
Oleksii Leonov m****l@o****m 6
Ankur Sinha (Ankur Sinha Gmail) s****r@g****m 5
jhs s****j@h****e 5
Étienne Mollier e****r@m****g 5
Teo Stocco t****o@z****m 5
Konrad Wartke k****e@g****m 5
Guillaume Dumas d****p@i****u 5
Paul Brodersen p****n@g****m 4
Cyrille Rossant c****t@e****r 4
Daan Sprenkels h****o@d****m 4
kapil k****3@g****m 3
rahul gupta r****8@g****m 3
and 41 more...

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 93
  • Total pull requests: 337
  • Average time to close issues: over 1 year
  • Average time to close pull requests: 12 days
  • Total issue authors: 50
  • Total pull request authors: 27
  • Average comments per issue: 3.4
  • Average comments per pull request: 1.23
  • Merged pull requests: 248
  • Bot issues: 1
  • Bot pull requests: 112
Past Year
  • Issues: 12
  • Pull requests: 165
  • Average time to close issues: 8 days
  • Average time to close pull requests: 2 days
  • Issue authors: 11
  • Pull request authors: 11
  • Average comments per issue: 0.92
  • Average comments per pull request: 0.93
  • Merged pull requests: 91
  • Bot issues: 1
  • Bot pull requests: 97
Top Authors
Issue Authors
  • mstimberg (21)
  • thesamovar (15)
  • bdevans (3)
  • denisalevi (3)
  • romainbrette (2)
  • schmitts (2)
  • davideschiavone (2)
  • kjohnsen (2)
  • lkeegan (2)
  • lucasbinder (1)
  • abin102 (1)
  • rinatsaban-uni (1)
  • vadim0x60 (1)
  • tim-ufer (1)
  • DingkunLiu (1)
Pull Request Authors
  • mstimberg (125)
  • dependabot[bot] (104)
  • schmitts (22)
  • bdevans (15)
  • Samuele-DeCristofaro (15)
  • github-actions[bot] (8)
  • Legend101Zz (8)
  • maverick4code (6)
  • paulbrodersen (4)
  • emollier (4)
  • mahipalimkar (3)
  • guy-singer (2)
  • pjsph (2)
  • kjohnsen (2)
  • bjourne (2)
Top Labels
Issue Labels
enhancement (22) bug (16) high priority (11) proposal (11) easy (9) question (7) suggested contributions (7) device: C++ standalone (6) component: codegen (5) component: synapses (5) low priority (5) component: multicompartmental (4) regression (4) major feature (4) component: standalone (4) component: documentation (4) codegen: cython (3) platform: Windows (2) component: units (2) syntax (2) component: state updates (2) component: monitors (1) cleanup (1) upstream-bug (1) duplicate (1) codegen: numpy (1) in progress (1) optimisation (1) dependencies (1) github_actions (1)
Pull Request Labels
dependencies (99) github_actions (99)

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 12,034 last-month
  • Total dependent packages: 11
    (may contain duplicates)
  • Total dependent repositories: 36
    (may contain duplicates)
  • Total versions: 67
  • Total maintainers: 2
pypi.org: brian2

A clock-driven simulator for spiking neural networks

  • Versions: 52
  • Dependent Packages: 10
  • Dependent Repositories: 35
  • Downloads: 12,034 Last month
Rankings
Dependent packages count: 1.6%
Stargazers count: 2.2%
Dependent repos count: 2.5%
Average: 2.7%
Downloads: 3.4%
Forks count: 3.6%
Maintainers (2)
Last synced: 4 months ago
conda-forge.org: brian2

Brian2 is a simulator for spiking neural networks available on almost all platforms. The motivation for this project is that a simulator should not only save the time of processors, but also the time of scientists. It is the successor of Brian1 and shares its approach of being highly flexible and easily extensible. It is based on a code generation framework that allows to execute simulations using other programming languages and/or on different devices.

  • Versions: 15
  • Dependent Packages: 1
  • Dependent Repositories: 1
Rankings
Forks count: 12.2%
Stargazers count: 14.6%
Average: 19.9%
Dependent repos count: 24.1%
Dependent packages count: 29.0%
Last synced: 4 months ago

Dependencies

.devcontainer/dev-requirements.txt pypi
  • ipympl * development
  • jupyterlab * development
  • matplotlib >=2.0 development
  • scipy >=0.13.3 development
rtd-requirements.txt pypi
  • docutils <0.17
  • ipython >=5
  • sphinx >=2.1
  • sphinx-tabs *
setup.py pypi
  • cython >=0.29
  • jinja2 >=2.7
  • numpy >=1.17
  • py-cpuinfo *
  • pyparsing *
  • setuptools >=24.2
  • sympy >=1.2
.github/workflows/publish_to_pypi.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
  • pypa/cibuildwheel v2.2.2 composite
.github/workflows/test_latest.yml actions
  • actions/checkout v2 composite
  • conda-incubator/setup-miniconda v2 composite
  • mstimberg/github-calc-nep29 v0.5 composite
.github/workflows/testsuite.yml actions
  • actions/checkout v2 composite
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • conda-incubator/setup-miniconda v2 composite
  • mstimberg/github-calc-nep29 v0.5 composite
.devcontainer/Dockerfile docker
  • mcr.microsoft.com/vscode/devcontainers/python 0-${VARIANT} build