This is the official PyTorch implementation of the paper "PyNoetic: a Modular Python Framework for No-Code Development of EEG Brain-Computer Interfaces" (PLOS ONE, 2025).
- ✅ Jun. 26, 2025: We released PyNoetic Codebase on GitHub.
- ✅ Jun. 24, 2025: PyNoetic accepted to PLoS One.
A fundamental challenge in the rapid development of BCI systems is the absence of comprehensive software solutions specifically tailored for advancing cognitive neuroscience experiments. Existing BCI frameworks suffer from critical limitations, including a lack of "stage-wise" flexibility crucial for experimental research, elevated costs stemming from reliance on proprietary software, and an absence of all-inclusive features leading to reliance on multiple softwares.
We introduce PyNoetic- an end-to-end python framework that not only addresses these inherent limitations but also offers an extensive selection of methods, coupled with user-friendly compatibility for integrating novel algorithms at each developmental phase of a BCI system. PyNoetic offers a comprehensive suite of functions ranging from: stimuli presentation, data acquisition, channel selection techniques, filters, multiple feature extraction techniques, artifact removal, a wide array of analytical tools, brain-connectivity measures, ML classification models, data visualization, systematic testing via simulation, and evaluation of novel paradigms. To provide flexibility for research, the option to add custom functionality through scripting is provided for experienced users. PyNoetic exhibits versatility and suitability for both offline and real-time deployment of BCI systems.
To install the framework, clone the repository from Github and run the load.py file in the prototype folder. This should display a GUI on your screen.
git clone https://github.com/NeuroDiag/PyNoetic-official.git
python -m venv PyNoeticEnv
PyNoeticEnv/Scripts/activate
pip install -r requirements.txt
# You might need to use: sudo apt install libxcb==* for Linux
# For macOS : brew install labstreaminglayer/tap/lsl
cd gui
python load.pyMicrosoft Visual C++ 14.0 or greater is required for advanced simulation functionality.
For MacOS, testing has been done with python 3.9.6 and a separate requirement.txt exists. Tested on both Ubuntu 22.04 and Windows 11 with python 3.12.4
PyNoetic caters to both experienced programmers and those new to Python, expediting the experiment design process. This empowers researchers to concentrate on the intricate facets of BCI development, thus accelerating future research endeavors. The framework comes preloaded with some sample data for initial testing. The sample data was collected using Emotiv Epoc X and comprises of 14 channels AF3, F7, F3, FC5, T7, P7, O1, O2, P8, T8, FC6, F4, F8, AF4 with 02 references at P3, P4. PyNoetic loads the sample data by default.
The modularity of PyNoetic allows the users to add a novel/ custom machine learning classifier to the framework with a single line of code:
# Navigate to ./gui/feature.py
cd gui
# Add a new function:
def custom_ml_classifier(self):
X = self.data[:-1]
Y = self.data[-1]
ml_model = ml_classifier() # Your custom ML function
ml_model = ml_model.fit(X,Y)
scores = cross_val_score(ml_model,X,Y)
return scores
# Repeat the same for ./live_mode/feature.py to update live modeTo report a bug in the existing framework version, please open an issue. We are generally quick in responding and fixing issues/ bugs. Post any general questions/ request a new feature in PyNoetic's Discussions Forum.
PyNoetic was originally developed by Gursimran Singh (TIET), Aviral Chharia (CMU), Rahul Upadhyay (TIET), Vinay Kumar (TIET) and Luca Longo (TU Dublin). Contribute to the toolbox and be featured here!
PyNoetic is available under the GNU General Public License v3.0 See the LICENSE file for more details. For the supporting packages/ libraries on why PyNoetic is build, we acknowledge their individual Licenses.
If you find our work useful for your project, please consider adding a star to this repository and citing the paper:
@article{singh2025pynoetic,
title = {PyNoetic: a Modular Python Framework for No-Code Development of EEG Brain-Computer Interfaces},
author = {Singh, Gursimran and Chharia, Aviral and Upadhyay, Rahul and Kumar, Vinay and Longo, Luca},
journal = {PLoS One},
year = {2025},
}PyNoetic is an open-source project supported by:
Developed by researchers affiliated with various leading universities.







