Typeface began, like many projects, as a hackathon entry. In at Georgetown University's first MLH-sanctioned hackathon.
Originally, the hope was to build a brain-computer interface using EEG to allow users to play a simple spell-casting game we'd dreamed up. However, as we worked with the Muse headband - a commercial EEG product - we realized there was potential to build something more useful than just a game. Instead, our goal became to allow a user to type with as few muscles as possible.
The biggest challenge here was developing a unary typing interface. With a typical keyboard, there are dozens of potential inputs (keys) that a user selects from as need. Even in Morse code, one must both maintain consistent pacing and communicate two inputs (shorts and longs).
Eventually, we recalled a story about how Vietnam Prisoners of War managed to communicate with each other using what is known as "tap codes" - a simple method of transmitting messages through a series of taps that does not require either party to learn Morse Code.
The way tapcodes work is pretty straightforward. Imagine a grid of letters like the one below:
A | B | C | D | E |
F | G | H | I | J |
K | L | M | N | O |
P | Q | R | S | T |
U | V | W | X | Y/Z |
To communicate the letter "N" a user would tap four times (the number of columns from the left), pause, and tap three times (the number of rows from the top). In this way, any message can be typed out simply by communicating their coordinates on this grid. The system isn't quite as efficient as morse-code but it's easily learned and reliable.
The typeface UI was inspired by this protocol. Instead of requiring a user to "group" their signals into rows and columns we used a timer to make up for some hardware challenges whereby signals could be miss-counted. The timer highlights individual columns on a grid and, when the user blinks, it switches to highlighting rows. When the user blinks again the character at the intersection between the row and column is typed on the screen.
In this way, one can type nearly any message simply by blinking at the desired times.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.