Project · Research and development In development
OpenBCI: a local-first data pipeline for brain-computer interfaces
An ongoing research and development project by Michael P. Goodman that pairs OpenBCI Cyton and Galea hardware with Python and a ChromaDB vector store, to capture EEG data, organize it, and make it searchable on hardware he controls.
By Michael P. Goodman · Last reviewed
- Hardware
- OpenBCI Cyton and Galea
- Language
- Python
- Storage
- ChromaDB vector database
- Status
- Exploratory R&D
Scope and safety
This is an exploratory engineering and research project. It is not a medical device, makes no diagnostic or therapeutic claims, and does not provide medical advice.
OpenBCI overview
Brain-computer interface data is a hard data-engineering problem long before it is a modeling problem: continuous multi-channel signals, tight timing, noisy inputs and a lot of recordings to organize. This project builds the plumbing first.
It is also an unusually sensitive kind of data. That makes it a natural fit for the way I build everything else: keep the data on local storage, keep the pipeline auditable, and avoid sending raw recordings to a third-party service.
- Acquire. Stream samples from OpenBCI hardware into Python.
- Prepare. Buffer, timestamp and clean the signal, and cut it into labeled windows.
- Represent. Turn each window into features or embeddings.
- Store and search. Persist vectors and session metadata in ChromaDB so recordings can be queried and compared.
OpenBCI screenshots
Screenshots of the signal viewer and pipeline output will be added here.
Screenshots are being added
Annotated screenshots of this project will appear here. The architecture diagram below and the linked live or source pages show the current state in the meantime.
OpenBCI architecture
The pipeline has four stages. Everything runs on a machine I own.
OpenBCI outcomes
Current state of the work. Measured results will be added as experiments are completed and documented.
End-to-end pipeline design
A defined path from headset to searchable vector store, with clear boundaries between stages.
Local-first handling of neural data
Recordings and embeddings are designed to stay on local storage, not in a third-party cloud service.
Reusable data-engineering pattern
The acquire, prepare, represent and store pattern carries over to any streaming-sensor project.
Technologies used in OpenBCI
The tools involved in the pipeline.
Hardware
- OpenBCI Cyton
- OpenBCI Galea
Software
- Python
- ChromaDB
- Signal filtering and windowing
- Feature or embedding extraction
Infrastructure
- Local workstation
- Local-only storage
OpenBCI FAQ
What is OpenBCI?
OpenBCI is an open-source brain-computer interface hardware and software ecosystem. This project uses its Cyton and Galea hardware.
Is this a medical or clinical project?
No. It is exploratory engineering and research. It makes no diagnostic or therapeutic claims.
Why use a vector database for EEG data?
ChromaDB stores embeddings with metadata, which allows similarity search across recordings in addition to ordinary session lookups.
Building a sensor or data pipeline?
Streaming data, careful storage and an auditable path from raw signal to answer are the same problems at any scale.