This page provides an overview of the major themes in BrainFlow’s development. Each of these items requires a relatively large amount of effort to implement. These may be achieved more quickly with dedicated funding or interest from contributors.

An item being on the roadmap does not mean that it will necessarily happen, even with unlimited funding. During the implementation period we may discover issues preventing the adoption of the feature.

Additionally, an item not being on the roadmap does not exclude it from inclusion in BrainFlow. The roadmap is intended for larger, fundamental changes to the project that are likely to take months or years of developer time. Smaller-scoped items will continue to be tracked on our issue tracker.

Support as many devices as possible

BrainFlow has built-in framework for adding new devices. It works great and simplifies this process, but to add new boards we need to buy them or collaborate with manufactorers.

Port BrainFlow to new platforms and languages

So far we support:

  • Linux
  • Windows
  • MacOS
  • Raspberry Pi(for some devices)
  • Android(for some devices)

We are working on adding support for other OSes like IOS and adding more boards to Android and Raspberry Pi.

Also, we are looking forward to add more bindings e.g. JavaScript.

The last but not the least we are integrating BrainFlow to Game Engines and other applications.

Signal Processing and ML API improvements

List of potential tasks:

  • Implement ICA based signal denoising
  • Implement Common Spatial Patterns(CSP)
  • Add more ML classifiers for existing derivative metrics
  • Calculate more derivate metrics
  • Add the opportunity to load user’s models via onnxruntime

Documentation and website improvements

We’d like to improve the content, structure, and presentation of the BrainFlow documentation. Some specific goals include:

  • Improve the “Getting Started” documentation, designing and writing learning paths for users different backgrounds (e.g. brand new to programming, experienced programmers unfamiliar with BCI technology, already familiar with BCI technology or BCI scientists without programming experience).
  • Improve the overall organization of the documentation and specific subsections of the documentation to make navigation and finding content easier.