mne-tools / mne-tools/mne-python

MAINT: Offload GUI abstraction

Open
#11,990 7 comments 0 reactions 2 assignees View on GitHub

@wmvanvliet is already working on this.

Since Aug 24, 2026.

Dominant language
Python
Stars
3.5k
Forks
1.6k
Avg merge
1d 6h
Merged PRs (30d)
100

Description

@alexrockhill and now @wmvanvliet have raised issues about the complexity of our GUI backend abstraction. TL;DR is that it works most of the time for what we already have (brain and coreg I think), but can be very difficult to add new stuff.

I went looking for an abstraction layer for Qt/ipywidgets and it looks like there is one:

https://github.com/pyapp-kit/magicgui

It's MIT licensed, actively developed, and available on PyPI and conda-forge. One disadvantage is that it looks like it has a truck factor of one. But with our expertise maybe we can become active contributors there instead of just in our own code!

I'm tempted to take a look at look in the coming weeks at how it works and see if I can fairly easily get a pyvistaqt.BackgroundPlotter in when it's Qt and a trame-backend pyvista.Plotter when it's in notebook with some interaction.

EDIT: Might also take care of https://github.com/mne-tools/mne-python/issues/11027

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.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.