mne-tools / mne-tools/mne-python
GSoC 2026: Scaling Documentation Interactivity via JupyterLite
Open
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 3.5k
- Forks
- 1.6k
- Avg merge
- 1d 6h
- Merged PRs (30d)
- 100
Description
This issue tracks my GSoC 2026 project: adding "Try in Browser" interactivity to the MNE-Python documentation using JupyterLite.
The work began as a single branch (#13925) and was split into five reviewable PRs. All five are merged as of 15 September 2026.
Pull requests
| PR | What it does | Status |
|---|---|---|
| #14128 | mne.datasets.lite_data, a small dataset so the browser tutorials load quickly |
Merged |
| #14135 | Builds the dev MNE wheel that JupyterLite installs | Merged |
| #14144 | A vtk.js backend for MNE's 3D renderer, since VTK has no WebAssembly build | Merged |
| #14150 | The notebook setup cell: installs MNE into the Pyodide kernel and fetches datasets over HTTP | Merged |
| #14157 | Wires the JupyterLite build into the docs | Merged |
Also part of the work:
- #13925: the original combined branch, superseded by the split and now closed
- #14093: a xeus-python kernel, explored and closed in favour of Pyodide
- #14041: the lite-data dataset request, closed once the dataset was hosted
Roadmap
- add basic JupyterLite GitHub Actions workflow (#13925)
- hook up sphinx-gallery to build the JupyterLite site (#13925)
- Evaluate the xeus-python backend vs pyodide (#14093)
- figure out wasm wheel patches for any tricky MNE dependencies (#14135)
- add a lite-data dataset fetcher (
mne.datasets.lite_data) to slim the build downloads (#14128) - test core imports and basic plotting inside the browser
- get 3D rendering working in the browser outputs (#14144)
- update a few high-priority tutorials to use the new interactive format (#14157)
- wrap up docs and final CI polish
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Read the linked issue history and PRs #14128, #14135, #14144, #14150, and #14157 to understand the completed JupyterLite work. All roadmap items are checked and the five reviewable PRs are merged, so there is no remaining implementation target described here.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- jupyter, python
- Domain
- build-system, documentation
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 10/100