GSoC 2025 Project #7 Brian Simulator :: Brian2Wasm: simulations in the browser (175/350h)

Mentors: Dan Goodman <d.goodman@imperial.ac.uk>, Marcel Stimberg <marcel.stimberg@inserm.fr>, Benjamin Evans <B.D.Evans@sussex.ac.uk>

Skill level: Novice/intermediate

Required skills: HTML, JavaScript, basic C++ and Python

Time commitment: Flexible (175/350 hours)

Forum for discussion

About: Brian is a clock-driven spiking neural network simulator that is easy to learn, highly flexible, and simple to extend. Written in Python, it allows users to describe and run arbitrary neural and synaptic models without needing to write code in any other programming language. It is built on a code-generation framework that transforms model descriptions into efficient low-level code. WebAssembly is a binary instruction format for a stack-based virtual machine. Wasm is designed as a portable compilation target for programming languages, enabling deployment on the web.

Brian’s code generation pipeline can generate C++ code, and the emscripten toolchain can compile this code into WebAssembly. This makes it possible to run simulations directly in a web browser, requiring no installation on the client side. We have recently created a proof-of-concept, brian2wasm (GitHub - brian-team/brian2wasm), showing the feasibility of this approach.

Aims: The aim of this project is to turn this proof-of-concept into a convenient tool for the wider community. In particular, the aims of this project are to:

  • Improve the general workflow (e.g. detection/configuration of emscripten toolchain)
  • Implement efficient data transfer between the WebAssembly simulation and the JavaScript code that displays the results
  • Provide convenient tools for website customization and plot display
  • Document the package and its usage

Additional goals for a 350h project:

  • Set up an automatic test suite for brian2wasm
  • Provide convenient tools for setting parameters at the start of the simulation (big project)
  • Provide components for real-time interaction with Brian scripts, e.g. providing microphone or camera input to the Brian simulation and returning spikes or other data from the Brian simulation to the website (big project)

Project website: GitHub - brian-team/brian2wasm

Tech keywords: HTML, JavaScript, WebAssembly, emscripten, Python, C++

@d.goodman , @mstimberg , and @benjamin_evans

I am very interested in the brian2wasm project. The aims of the project, particularly improving the workflow and implementing efficient data transfer, align with my skills and interests. I have experience with HTML, JavaScript, and basic C++ and Python, and I’m eager to learn more about WebAssembly and emscripten.

I have reviewed the brian2wasm repository and I am excited by the potential of this project. I am available to commit [175/350] hours to this project, and I am confident that I can make a meaningful contribution.

I would welcome the opportunity to discuss my application and the project in more detail.

Thank you for your time and consideration.

Sincerely,

Vrushali

Dear @d.goodman, @mstimberg I hope you are doing well. My name is Sayan, and I am an AI Researcher at Jadavpur University and ex-Research Intern at IIEST with a strong background in Python, JavaScript, HTML, and basic C++. I am particularly interested in computational neuroscience and its applications in neural network simulations.

I came across the Brian2Wasm project for Google Summer of Code 2025 and found it highly fascinating. The idea of bringing Brian 2 simulations to the web using WebAssembly is an exciting challenge, and I would love to contribute to improving the workflow, optimizing data transfer, and enhancing visualization tools. Given my experience in machine learning, deep learning, and frontend development, I believe I can add value to the project.

I would appreciate any guidance on getting started. I have reviewed the brian2wasm repository and would love to discuss potential contributions, initial tasks, or any prerequisites you recommend. Please let me know if we can set up a call or if there are specific areas where I can begin contributing.

Looking forward to your response!

Hi @Sayan_Mandal1, hi @vrun. Thank you for the interest in our project! I am currently travelling and can not get into details at this time, but I will be back in the office coming Monday and will give you more information then. Until then, you can find some very general information on the website we put up for last year’s GSoC: GSoC 2024 | The Brian spiking neural network simulator The 2024 discussions on neurostars (links in the page linked above) should also give you some ideas. Apologies for not being more precise for now, but I’ll get back to you early next week.

Best,
Marcel

Hi @mstimberg,

Thank you for your response! I appreciate the pointers and will go through the GSoC 2024 page and Neurostars discussions in the meantime. Looking forward to your update next week.

Best,
Sayan