BrainFlow is a library intended to obtain, parse and analyze EEG, EMG, ECG, and other kinds of data from biosensors.
It provides a uniform SDK to work with biosensors with a primary focus on neurointerfaces, all features available for free and distributed under MIT license.
Advantages of BrainFlow:
- powerful API with many features to simplify development
- Straightforward API for data acquisition
- Powerful API for signal filtering, denoising, downsampling...
- Development tools like Synthetic board, Streaming board, logging API
- easy to use
- BrainFlow has many bindings, you can choose programming language you like
- All programming languages provide the same API, so it's simple to switch
- API is uniform for all boards, it makes applications on top of BrainFlow almost board agnostic
- easy to support and extend
- Code to read data and to perform signal processing is implemented only once in C/C++, bindings just call C/C++ methods
- Powerful CI/CD system which runs integrations tests for each commit automatically using BrainFlow's Emulator
- Simplified process to add new boards and methods
Resources
- BrainFlow Docs, Dev and User guides and other information
- BrainFlow's slack workspace, use this link to join
- For BrainFlow Developers
Contribution guidelines
If you want to contribute to BrainFlow, be sure to review the contribution guidelines. This project adheres to BrainFlow's code of conduct. By participating, you are expected to uphold this code.
We use GitHub issues for tracking requests and bugs, please use BrainFlow's slack for general discussions.
The BrainFlow project strives to abide by generally accepted best practices in open-source software development.
Build Status
Build Type | Status |
---|---|
Windows Tests | |
Unix(Linix and MacOS) Tests | |
Android Tests | |
Alpine Tests | |
Valgrind Tests | |
CppCheck | |
Clang-Format |
Brainflow Bindings
We support bindings for: