GSoC 2025 Project #15 TvB The Virtual Brain :: New graphical widget(s) for JupyterLab (175/350h)

Mentors: Lia Domide <lia.domide@codemart.ro>, Romina Baila <romina.baila@codemart.ro> and Teodora Misan <teodora.misan@codemart.ro>

Skill level: Intermediate

Required skills: Python developer, experienced JupyterLab user, experience with Jupyter Lab extension development (desired), React JS (desired), iPyWidgets (desired)

Time commitment: flexible (we can vary the number and difficulty of the widgets with the number of hours)

Forum for discussion

About: TVB is An open-source simulator for whole brain network modeling.

Simulating the human brain is the holy grail of neuroscience – offering a pioneering tool for understanding how our brain works and how to deal with its disorders like stroke, epilepsy or neurodegenerative diseases like Alzheimer’s or Parkinson’s.

While large-scale research initiatives simulate neurons and small brain regions at the cellular level on massively parallel hardware, they are still years away from clinical applications.

The Virtual Brain (TVB) takes a different approach and reduces complexity on the micro level to attain the macro organization: a TVB model of a patient’s brain generates sufficiently accurate EEG, MEG, BOLD and SEEG signals by reducing the complexity millionfold through methods from statistical physics. The key is TVB’s hybrid approach of merging individual anatomy from brain imaging data with state-of-the-art mathematical modeling.

Aims: In the TVB (https://www.thevirtualbrain.org/) ecosystem there is a new code repository called tvb-widgets [GitHub - the-virtual-brain/tvb-widgets: Widgets for EBRAINS notebooks] offering neat UI widgets for Jupyterlab environments. These widgets are compatible with TVB data formats and able to display these data in different forms: 2D, 3D.

The purpose of this project is to implement a new set of widgets, which would allow users to work in Jupyter Lab in 3D, with the connectivity matrices (nodes & edges), surfaces (cortical, subcortical, face), sensors and all data involved in a TVB simulation.

Necessary features for this widget: select from a drive the list of available datesets, load/unload a dataset, display connectivity matrix, 3D surface, connections, colours, animated timeseries, etc. Of course, these new widgets have to run in a Jupyterlab notebook as well. We have most of these already in the existent widgets, but we are looking into maybe new libraries to use, better performance, better usability - so a renovation of some of the existent features.

Finally, it would be great to have all the widgets linked into the tvb-ext-xircuits [GitHub - the-virtual-brain/tvb-ext-xircuits: Simple visual programming environment for jupyterlab] repository which is a Jupyterlab extension based on React JS. At the moment, only the PhasePlaneWidget [ebrains_demo_videos – Google Drive] is linked there, but the rest could be added in a similar manner.

Expected results: A set of classes , with at least one demo Jupyter notebook, and unit tests.

Websites: tvb-widgets/notebooks at main · the-virtual-brain/tvb-widgets · GitHub

Tech keywords: Python, IPywidgets, React JS, Jupyterlab, Jupyterlab extensions