Brain Dasher

Dasher is computer software which allows the efficient entry of text using continuous gestures. Typically these are eye, finger, limb or breathing movements. But...

Brain Computer Interfaces (BCIs) allow a person to communicate or control devices using their brain alone, i.e. without making any physical movements. The current priority for BCI research is to allow people suffering from total or near-total physical disability to have some degree of communication and interaction with the outside world.

The Brain Dasher project is attempt to link these two ideas, driving Dasher using a Brain-Computer Interface. This makes sense for one key reason:

Current BCIs can only extract information from their users at extremely low rates - typically tens of bits per minute. Dasher provides an extremely efficient method for converting bits generated by the user into text (at rate of around one character for every two bits, in English). If somebody can use a BCI to control Dasher, then they will not be wasting those precious bits.

Read more about why Dasher is a good match for BCI in:
Dasher - an efficient writing system for brain-computer interfaces?, S. A. Wills and David J. C. MacKay. IEEE Transactions on Neural Systems and Rehabilitation Engineering 14 (2), 244-246 (2006).

Connecting Dasher to BCIs

General approach

Our approach has been to provide an easy way to link Dasher to existing BCI systems. In addition to being driven by a mouse, Dasher now supports being driven by data sent to it from another application running on the same computer or on another computer. The implementation of this "socket interface" is documented in the file socketinput.txt (check here for the latest version). To configure it, look for the Socket Input part of the preferences dialog box in Dasher.

If your BCI can output a single continuous (scalar) output under the control of the user, this can be used to driver Dasher's one-dimensional mode.

If your BCI has discrete outputs, Dasher has many button modes which could be adapted for BCI, however the socket interface does not support event-based input (as of 2006).

Dasher + BCI2000

BCI2000 is a widely-used research BCI system. Dasher can be driven by BCI2000's External Application Interface, configured in the Connector tab of the configuration dialog. Simply set the Output Address to something like "localhost:20231" if Dasher is running on the same computer, or "hostname:20231" otherwise. In Dasher, make sure the port number used by the Socket Input is the same (20231), and enter the name and range of the BCI2000 signal that you would like to control the Y-cursor in Dasher.

In practice, we have often ended up using the CursorPosY signal (from the RJB module), rather than the raw Signal(0,0).

Projects using Dasher with BCI systems

Here are projects that I know about involving the use of Dasher together with a BCI, as of November 2006. Other projects may exist that I am not aware of.

First ever Dasher-BCI link, Tubingen, 2005

Linking Dasher to BCI2000 was first achieved by Seb Wills and Jürgen Mellinger in July 2005. At the end of this short collaboration we demonstrated the writing of the word "demonstration" by Ursula Mochty using Dasher driven by BCI2000, controlled by mu rhythms.

University of Wisconsin

In 2006, Nina Lewis at the University of Wisconsin is conducting a project involving Dasher+BCI2000, and has reported so far:

The last few weeks of the summer I was able to almost perfect 1-dimensional movement of the cursor in BCI2000 using mu rhythms from motor imagery. I would hook myself up to the cap and then complete the 1-dimensional tasks in BCI2000. I then used the parameters that worked best in BCI2000 when integrating BCI2000 and Dasher. I found that the only way to effectively use Dasher controlled with BCI2000 was to have 100% accuracy in BCI2000. I was able to write "Hello" in less than one minute on a speed of about .25 bits/second. The fastest speed I was using while still being able to accurately spell "Hello" was about .5 bits/second; any speed faster than this resulted in errors. I was also able to spell short phrases such as "Thank you very much" and "Love makes the world go round" at an average speed of about 1.25 words/minute. Here [are] videos of me doing the 1-dimensional tasks in BCI2000 and spelling the word "Hello" in Dasher using the BCI. They have both been sped up to 2X the original speed.

Note: In Dasher, speed is measured in bits/second, being the rate at which the user is providing Dasher with information. On average, the language model in Dasher converts this into text at a rate of around 2 bits per character for English.

Update (2007): Nina and a few others including me have written a paper describing use of Dasher and BCI in her lab by able-bodied and disabled users.

Other projects

Marijn van Vliet at the University of Twente in the Netherlands is also carring out a student project on Dasher+BCI2000 in autumn 2006.

Other Brain-Dasher plans

Proof of concept for the driving of Dasher from a BCI has been demonstrated, however there may be enhancements to Dasher that would make it better suited to control by BCI. Ideas being investigated include:


Seb Wills
Last updated November 2006