Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
This is a list of the major areas of ongoing and future development. It is meant to give an overview of what we're currently planning, as well as to provoke discussions about which features to prioritize. Bullet points with a (question) are ones that would require major changes to the GUI architecture, and may not be worth pursuing. Our Our development resources are extremely limited, so if you think you might be interested in helping out with any of these goals, please let us know!
A more comprehensive list of development goals is available on the GUI's GitHub Projects page


Info
Sub-pages describe previous projects that may or may not be active.



UI Upgrades

Short-term:
  • Replace record/audio "drawers" with separate modules (current project of Aaron Cuevas)
  • Create a full-screen visualizer for the Channel Map module

Longer-term:

  • Implement copy/paste for processors

...

Plugins

Short-term:
  • Set up central repository for user-contributed plugins
  • Integrate plugin browsing and installation into the GUI itself
  • Get plugin generator working across Mac, Linux, and Windows
  • Refine methods for automatic parameter editor generation
  • Set up central repository for user-contributed plugins
Longer-term:
  • Remove waveforms from spike events to reduce inter-plugin transmission bandwidth (waveforms can be recovered by looking back into the original data set)
  • Convert plugin format to VST3 (question)
  • Integrate plugin browsing and installation into the GUI itself


...

Matlab/Python/Julia integration

Short-term:
  • Refine Python plugin and add documentation and tutorials (current project of Clayton Barnes)
Longer-term:
  • Refine Julia plugin and add documentation and tutorials
  • Create a plugin that be programmed using the Matlab Code Generator

...

Networking

Longer-term:
  • Create a Network Streaming modules that can be used to send data between GUI instances, or to other software

...

Backend

Short term:

...

  • Allow data to pass through Sinks
Longer-term:
  • Migrate to a Reactive C++ framework, to make it easier to combine asynchronous data sources (question)Optionally allow waveforms from spike events to reduce inter-plugin transmission bandwidth
  • Add channel depth metadata, to facilitate more intuitive visualization


...

Testing

Short term:
  • Set up continuous integration 
  • Create a standard battery of tests to run prior to each release
  • Choose a testing framework and start building unit tests for individual methods
Longer-term:
  • Set up continuous integration (question)

...

Data format

Short term:
  • Make the File Reader compatible with Open Ephys, Binary, and NWB format
  • Update the NWB format to be compatible with the 2.0 specification
Longer-term:
  • Migrate all configuration files to JSON instead of XML