An open API service indexing awesome lists of open source software.

https://github.com/mne-tools/mne-cpp

MNE-CPP: The C++ framework for real-time functional brain imaging.
https://github.com/mne-tools/mne-cpp

analysis biomedical-informatics c-plus-plus clinical cmake computational-neuroscience eeg electroencephalography healthcare magnetoencephalography medical-imaging meg neuroimaging neuroscience qt real-time signal-processing visualization

Last synced: 13 days ago
JSON representation

MNE-CPP: The C++ framework for real-time functional brain imaging.

Awesome Lists containing this project

README

          


MNE-CPP


Version 2.2.1 
Release 
Staging


CodeQL 
CodeCov 
Gitter

-----------------

MNE-CPP is an open-source, cross-platform C++ framework for real-time and offline processing of MEG, EEG, and related neurophysiological data. 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](https://mne-cpp.github.io/).

Try it now
----------

No install required — runs entirely in your browser via WebAssembly. **Your data stays on your machine.**

| | Application | Description | Release | Nightly |
|---|---|---|---|---|
| MNE Browse | **MNE Browse** | Browse raw MEG/EEG data with filtering, events, averaging, ICA | [**Open**](https://mne-cpp.github.io/wasm/mne_browse.html) | [**Open**](https://mne-cpp.github.io/wasm/dev/mne_browse.html) |
| MNE Inspect | **MNE Inspect** | 3D visualization of brain surfaces, source estimates, and forward models | [**Open**](https://mne-cpp.github.io/wasm/mne_inspect.html) | [**Open**](https://mne-cpp.github.io/wasm/dev/mne_inspect.html) |

Applications
------------

| 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, and forward models |
| **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](https://mne-cpp.github.io/docs/manual/tools-overview) for BEM models, forward/inverse computation, data conversion, anonymization, and streaming — C++ ports of the original [MNE-C](http://www.nmr.mgh.harvard.edu/martinos/userInfo/data/MNE_register/index.php) utilities.

Libraries
---------

| 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 |
| **Disp3D** | 3D brain visualization (Metal / Vulkan / D3D / OpenGL via Qt RHI) |

All libraries depend on [Qt](https://www.qt.io/), [Eigen](http://eigen.tuxfamily.org/), and [skigen](https://github.com/skigen-project/skigen) (header-only scikit-learn-equivalent algorithms backing ML/decoding). See the [API documentation](https://mne-cpp.github.io/docs/development/api).

Development
-----------

### Build from source

```bash
# Linux / macOS
git clone --recursive https://github.com/mne-tools/mne-cpp.git && cd mne-cpp
./init.sh && cmake --build build/developer-dynamic --parallel
```

```bash
# Windows
git clone --recursive https://github.com/mne-tools/mne-cpp.git && cd mne-cpp
.\init.bat
cmake --build build\developer-dynamic --parallel
```

`init` 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.).

### Requirements

[CMake](https://cmake.org/download/) ≥ 3.21 and a C++17 compiler:

| Platform | Compiler |
|----------|----------|
| Windows | [MSVC](https://visualstudio.microsoft.com/vs/) 2022+ |
| Linux | [GCC](https://gcc.gnu.org/releases.html) ≥ 13 |
| macOS | [Xcode](https://developer.apple.com/xcode/) ≥ 16 |

For the full build guide see the [documentation](https://mne-cpp.github.io/docs/development/buildguide-cmake).

### Contributing

If you want to contribute to MNE-CPP you can find all the information you need [here](https://mne-cpp.github.io/docs/development/contribute).

Releases
--------

Pre-built binaries for Windows, macOS, and Linux are available on the [download page](https://mne-cpp.github.io/download).

Contact
-------

A list of contact persons can be found [here](https://mne-cpp.github.io/docs/overview#contact).

License
-------

MNE-CPP is licensed under the [BSD-3-Clause license](LICENSE).