Skip to content

morningsunsunsun/SharpBCI

 
 

Repository files navigation

SharpBCI

Introduction

This is a easy-to-use platform to run BCI experiments. This platform provides basic functions such as experimental configuration, data streaming, and offline analysis. Different experiment paradigms and external device drivers can be implemented through plug-in development.

System Design

Modules & Interfaces

Repository Organisation

\

  • Library Shared libraries
  • SharpBCI SharpBCI executable
  • SharpBCI.Core Core of SharpBCI
  • SharpBCI.Extensions Basic extensions
  • SharpBCI.Plugins SharpBCI plugins
    • SharpBCI.CPT.Plugin Conners' Continuous Performance Test pradigm
    • SharpBCI.MI.Plugin User interface of motor imagery paradigm interop with python server
    • SharpBCI.MRCP.Plugin Movement related cortical potential paradigm
    • SharpBCI.P300.Plugin P300 paradigm
    • SharpBCI.Speller.Plugin BCI speller paradigm, using DirectX to provide stable flicker rendering
      • CCA C++ cannonical correlation analysis library
    • SharpBCI.VEP.Plugin Multiple visual evoked potential paradigms included, using DirectX to provide stable flicker rendering
    • SharpBCI.WebBrowser.Plugin Server side of BCI web browser paradigm, client side is a script running in Chrome
    • SharpBCI.BiosignalSamplers.Plugin Bio-signal sampler drivers, e.g. Neuroscan, NeuroElectrics, OpenBCI, ...
    • SharpBCI.EyeTrackers.Plugin Eye-tracker drivers, e.g. Tobii's eye-tracker
    • SharpBCI.VideoSources.Plugin Video source drivers, e.g. Web-Cam
  • SharpBCI.Tests Unit tests of SharpBCI

Get Started

  1. Install Visual Studio 2018 or later, clone MarukoLib and SharpBCI into same folder.
  2. Open Visual Studio as administrator and create a new empty Visual Studio solution.
  3. Add all projects in repo MarukoLib except 'MarukoLib.Dragonfly' to the created solution.
  4. Add 'SharpBCI.Core', 'SharpBCI.Extensions', 'SharpBCI' projects into the solution.
  5. (Optional) Add some plugin projects into the solution as your wish.
  6. Set SharpBCI as the startup project.
  7. Build and run the solution.

File Formats

After the completion of a session, you can see some files that have the same filename but different suffixes in the data folder:

  • .mrk Experiment marker with timestamp with timestamp. (ASCII; Comma-separated)
  • .dat Biosignal data with timestamp. (ASCII; Comma-separated)
  • .gaz Eye gaze point data with timestamp. (ASCII; Comma-separated)
  • .vfs Video frames with timestamp. (Binary)
  • .scfg Session configuration, can be used to restart the experiment. (ASCII; Json)
  • .session Session information. (ASCII; Json)
  • .result Result of the experiment. (ASCII; Json)

Command-line

  • .\SharpBCI.exe "xxx.scfg" Directly run the predefined session.
  • .\SharpBCI.exe "xxx.mscfg" Run multiple predefined sessions in one go.

How to Create Your Own Paradigm

You can implement a experiment easily by defining your own Experiment with desired paramters and corresponding ExperimentFactory.

Demo Experiment

See Demo Plugin for more detail.

Currently Supported Devices

  • Biosignal Sampler
    • Generic Oscillator (Sine wave simulated)
    • Data File Reader (Replay stored file)
    • Neuroscan (via TCP/IP from SCAN 4.5)
    • Neuro Electrics (via TCP/IP from NIC 2)
    • OpenBCI (via serial port)
    • Unnamed Device (via serial port, made by ZJU)
  • Eye tracker
    • Cursor Tracker (PC mouse simulated)
    • Tobii's Eye-Tracker (via Tobii gaming SDK)
  • Video Source
    • Screen Capturer (PC screenshot)
    • Web Camera (via DirectShow)

About

SharpBCI is a software for brain-computer interface research.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 95.6%
  • JavaScript 3.2%
  • Other 1.2%