{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/a-differentiable-brain-simulator-bridging","title":"A differentiable brain simulator bridging brain simulation and brain-inspired computing","arxiv_id":"2311.05106","date":"2023-11-09","proceeding":null,"authors":["ChaoMing Wang","Tianqiu Zhang","Sichao He","Hongyaoxing Gu","Shangyang Li","Si Wu"],"abstract":"Brain simulation builds dynamical models to mimic the structure and functions of the brain, while brain-inspired computing (BIC) develops intelligent systems by learning from the structure and functions of the brain. The two fields are intertwined and should share a common programming framework to facilitate each other's development. However, none of the existing software in the fields can achieve this goal, because traditional brain simulators lack differentiability for training, while existing deep learning (DL) frameworks fail to capture the biophysical realism and complexity of brain dynamics. In this paper, we introduce BrainPy, a differentiable brain simulator developed using JAX and XLA, with the aim of bridging the gap between brain simulation and BIC. BrainPy expands upon the functionalities of JAX, a powerful AI framework, by introducing complete capabilities for flexible, efficient, and scalable brain simulation. It offers a range of sparse and event-driven operators for efficient and scalable brain simulation, an abstraction for managing the intricacies of synaptic computations, a modular and flexible interface for constructing multi-scale brain models, and an object-oriented just-in-time compilation approach to handle the memory-intensive nature of brain dynamics. We showcase the efficiency and scalability of BrainPy on benchmark tasks, highlight its differentiable simulation for biologically plausible spiking models, and discuss its potential to support research at the intersection of brain simulation and BIC.","url_abs":"https://arxiv.org/abs/2311.05106v2","url_pdf":"https://arxiv.org/pdf/2311.05106v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"a-differentiable-brain-simulator-bridging","repo_url":"https://github.com/brainpy/BrainPy","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"jax","reach":{"status":"ok","spdx":"GPL-3.0"}},{"paper_slug":"a-differentiable-brain-simulator-bridging","repo_url":"https://github.com/brainpy/brainpy-iclr24-reproducibility","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"jax","reach":{"status":"ok"}}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2311.05106","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2311.05106"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/brainpy/BrainPy","reach":{"status":"ok","spdx":"GPL-3.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/brainpy/brainpy-iclr24-reproducibility","reach":{"status":"ok"}}],"summary":{"ran":5,"unverified":4},"by_repo_kind":{"official":{"samples":9,"ran":5,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":9,"samples":[{"code_sha256_prefix":"3d778df83fcbb22d","entry":"current2firing_time","repo":"brainpy/brainpy-iclr24-reproducibility","repo_kind":"official","path":"appendix_SNN-training/BrainPy_fashion_mnist.py","file_url":"https://github.com/brainpy/brainpy-iclr24-reproducibility/blob/HEAD/appendix_SNN-training/BrainPy_fashion_mnist.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"3d778df83fcbb22d"}},{"code_sha256_prefix":"7b4f68e1b5bc47ac","entry":"firingRatePlot","repo":"brainpy/brainpy-iclr24-reproducibility","repo_kind":"official","path":"compilation_of_multiarea_net/brian2_code.py","file_url":"https://github.com/brainpy/brainpy-iclr24-reproducibility/blob/HEAD/compilation_of_multiarea_net/brian2_code.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"7b4f68e1b5bc47ac"}},{"code_sha256_prefix":"bb8614d951abf18e","entry":"rasterPlot","repo":"brainpy/brainpy-iclr24-reproducibility","repo_kind":"official","path":"compilation_of_multiarea_net/brian2_code.py","file_url":"https://github.com/brainpy/brainpy-iclr24-reproducibility/blob/HEAD/compilation_of_multiarea_net/brian2_code.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"bb8614d951abf18e"}},{"code_sha256_prefix":"b6fa94ee3547ce0e","entry":"read_fn","repo":"brainpy/brainpy-iclr24-reproducibility","repo_kind":"official","path":"5.1_EI_balanced_network/result_analyze_LIF.py","file_url":"https://github.com/brainpy/brainpy-iclr24-reproducibility/blob/HEAD/5.1_EI_balanced_network/result_analyze_LIF.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"b6fa94ee3547ce0e"}},{"code_sha256_prefix":"72249aaac6189057","entry":"replace_bwd","repo":"brainpy/brainpy-iclr24-reproducibility","repo_kind":"official","path":"appendix_SNN-training/brainpy_VGG-SNN.py","file_url":"https://github.com/brainpy/brainpy-iclr24-reproducibility/blob/HEAD/appendix_SNN-training/brainpy_VGG-SNN.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"72249aaac6189057"}},{"code_sha256_prefix":"c007d79b836155d0","entry":"firingRate","repo":"brainpy/brainpy-iclr24-reproducibility","repo_kind":"official","path":"compilation_of_multiarea_net/brian2_code.py","file_url":"https://github.com/brainpy/brainpy-iclr24-reproducibility/blob/HEAD/compilation_of_multiarea_net/brian2_code.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"c007d79b836155d0"}},{"code_sha256_prefix":"f6b8e7b29ecd3c96","entry":"read_fn","repo":"brainpy/brainpy-iclr24-reproducibility","repo_kind":"official","path":"5.1_EI_balanced_network/result_analyze_HH.py","file_url":"https://github.com/brainpy/brainpy-iclr24-reproducibility/blob/HEAD/5.1_EI_balanced_network/result_analyze_HH.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f6b8e7b29ecd3c96"}},{"code_sha256_prefix":"1aaabd739a7711e7","entry":"replace","repo":"brainpy/brainpy-iclr24-reproducibility","repo_kind":"official","path":"appendix_SNN-training/brainpy_VGG-SNN.py","file_url":"https://github.com/brainpy/brainpy-iclr24-reproducibility/blob/HEAD/appendix_SNN-training/brainpy_VGG-SNN.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"1aaabd739a7711e7"}},{"code_sha256_prefix":"390bf218f30c680d","entry":"replace_fwd","repo":"brainpy/brainpy-iclr24-reproducibility","repo_kind":"official","path":"appendix_SNN-training/brainpy_VGG-SNN.py","file_url":"https://github.com/brainpy/brainpy-iclr24-reproducibility/blob/HEAD/appendix_SNN-training/brainpy_VGG-SNN.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"390bf218f30c680d"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}