MNE-CPP is an open-source, cross-platform C++ framework for real-time and offline processing of functional brain imaging data: non-invasive MEG and EEG as well as invasive intracranial recordings (sEEG and ECoG). It provides modular libraries and ready-to-use applications — from data browsing and 3D visualization to real-time acquisition and source localization. For documentation please visit mne-cpp.github.io.
No install required — runs entirely in your browser via WebAssembly. Your data stays on your machine.
| Application | Description | Release | Nightly | |
|---|---|---|---|---|
| MNE Browse | Browse raw MEG/EEG data with filtering, events, averaging, ICA | Open | Open | |
| MNE Inspect | 3D visualization of brain surfaces, source estimates, forward models, and sEEG/ECoG electrodes | Open | Open |
| Application | Description |
|---|---|
| MNE Browse | Raw data browsing, filtering, event detection, averaging, ICA, and covariance computation |
| MNE Inspect | Interactive 3D visualization of brain surfaces, source estimates, forward models, and sEEG/ECoG implantations |
| MNE Scan | Real-time acquisition and processing pipeline — MEGIN, BabyMEG, BrainAmp, eegosports, gUSBAmp, TMSI, Natus, LSL, FieldTrip Buffer |
| MNE Analyze | Sensor- and source-level analysis: browsing, filtering, averaging, co-registration, dipole fitting, source localization |
| MNE Analyze Studio | Agent-oriented analysis workbench with LLM-driven skill host, neuro kernel, and extension SDK |
| MNE Dipole Fit | Sequential equivalent current dipole fitting for focal brain activity |
50+ command-line tools for BEM models, forward/inverse computation, data conversion, anonymization, and streaming — C++ ports of the original MNE-C utilities.
| Library | Description |
|---|---|
| Fiff | FIFF file I/O and data structures (raw, epochs, evoked, covariance, projections) |
| Mne | Core MNE data structures — source spaces, source estimates, hemispheres |
| Fwd | Forward modelling — BEM and MEG/EEG lead-field computation |
| Inv | Inverse estimation — MNE, dSPM, sLORETA, eLORETA, LCMV/DICS beamformers, RAP MUSIC, dipole fit, HPI |
| Dsp | Signal processing — FIR/IIR filtering, ICA, xDAWN, SSS/tSSS, Welch PSD, Morlet TFR, resampling, SPHARA |
| Connectivity | Connectivity — coherence, PLV, PLI, WPLI, cross-correlation, network analysis |
| Ieeg | Intracranial EEG — sEEG/ECoG implantations from BIDS, bipolar re-referencing, contact values painted onto the cortex |
| Disp3D | 3D brain visualization (Metal / Vulkan / D3D / OpenGL via Qt RHI) |
All libraries depend on Qt, Eigen, and skigen (header-only scikit-learn-equivalent algorithms backing ML/decoding). See the API documentation and the examples.
# Linux / macOS
git clone --recursive https://github.com/mne-tools/mne-cpp.git && cd mne-cpp
./init.sh && cmake --build build/developer-dynamic --parallel# Windows
git clone --recursive https://github.com/mne-tools/mne-cpp.git && cd mne-cpp
.\init.bat
cmake --build build\developer-dynamic --parallelinit downloads Qt, Eigen, and skigen into src/external/, then configures CMake. Run ./init.sh --help for all options (linkage, build type, custom Qt path, etc.).
CMake ≥ 3.21 and a C++20 compiler:
| Platform | Compiler |
|---|---|
| Windows | MSVC 2022+ |
| Linux | GCC ≥ 13 |
| macOS | Xcode ≥ 16 |
For the full build guide see the documentation.
If you want to contribute to MNE-CPP you can find all the information you need here.
Pre-built binaries for Windows, macOS, and Linux are available on the download page.
Free code signing provided by SignPath.io, certificate by SignPath Foundation.
Windows release binaries are built by GitHub Actions from this repository and submitted to SignPath for Authenticode signing; no request is signed without the manual approval of the signing approver. Team roles, the privacy statement and the current signing status are in the Code signing policy.
A list of contact persons can be found here.
MNE-CPP is licensed under the BSD-3-Clause license.