mne-tools / mne-tools/mne-python

GSoC 2026: Scaling Documentation Interactivity via JupyterLite

Open
#13,929 3 comments 0 reactions 0 assignees View on GitHub

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.