WebAssembly
MNE-CPP can be compiled to WebAssembly (Wasm), enabling MNE Analyze and other applications to run directly in a web browser — no installation, no platform-specific binaries. Users simply open a URL to start working with their data.
The Wasm build uses the Emscripten toolchain together with Qt's WebAssembly target, configured through CMake. MNE-CPP targets multi-threaded Wasm by default, which requires Chromium-based browsers or Firefox and specific HTTP headers (Cross-Origin-Opener-Policy, Cross-Origin-Embedder-Policy).
Live Demo
Try MNE Analyze in your browser right now: mne-cpp.github.io/wasm/mne_analyze.html
Guides
- Build Guide — How to set up Emscripten and build MNE-CPP for WebAssembly, including both scripted and manual build workflows.
- Testing via CI — How to deploy and test Wasm builds using GitHub Actions and GitHub Pages.
Limitations
- The Wasm build always uses static linking (
BUILD_SHARED_LIBS=OFF). - File I/O operates through the browser's virtual file system rather than native disk access.
- 3D visualization via
disp3D_rhiis supported in WebAssembly builds whenQt6::GuiPrivateis available. The RHI backend uses OpenGL (WebGL) in the browser.