Thumbcode is our proposal for meeting the requirements of the previous section. It is a one-hand device-independent chording notation usable equally well with the left or right hand. (In principle a sufficiently coordinated thumber could carry on two independent conversations one with each hand.)
Although usable for communication between humans, Thumbcode is primarily intended for human-computer interaction (HCI) with wearable computers. Unlike traditional hand sign languages such as American Sign Language [2], Thumbcode provides for the full ASCII character set and other standard keyboard codes. In addition its discrete and regular structure should facilitate machine recognition by a wide range of devices including switches, position and motion sensors, and cameras.
The human hand has four fingers, index, middle, ring, and pinky. Each finger consists of three phalanges, approximately one-inch rigid segments, which we shall refer to as tip, medial, and base. A Thumbcode character is signed or thumbed by pressing the tip of the thumb against one of the phalanges. This defines the twelve thumb states of Thumbcode.
At the instant the thumb presses a phalanx, adjacent fingers may be open or closed (pressed together). The three pairwise closures are index to middle, middle to ring, and ring to pinky, defining three bits of information and hence eight closure states. In combination with the twelve thumb states this gives a total of 96 basic thumbcodes.
The closures are divided into unshifted and shifted. The unshifted closures are called Open, Pair, Trio, and Closed. In Open and Closed the fingers are held apart and together respectively. Pair holds just the index and middle fingers together, while Trio holds middle, ring, and pinky together. Each shifted closure is obtained from its unshifted counterpart by complementing (i.e. changing) whether or not the pinky is separated from the ring finger.
Thumbcode associates ASCII characters to these basic thumbcodes according to Table 1. (Tilde and backquote are accommodated with CTRL, see below.)
Each of the eight arrays in Table 1 should be visualized as being superimposed on the fingers of the right hand. (Left handed thumbers should first reflect the tables laterally and then superimpose each table on their left hand.)
Except for the Control key, denoted in Table 1, the remaining 95 characters are ordinary ASCII characters, including Return ( ), Space ( ), and Backspace ( ).
The Control or CTRL key is used to create compound thumbcodes. Its effect is to modify the meaning of the next thumbcode. The characters a-z (or A-Z) along with
@ ^ _ [ ] \are modified in the same way as when CTRL is pressed on a standard keyboard (with CTRL-[ being ESC). CTRL-digit (1 through 9 except 5) behaves like SHIFT on a numeric keypad: for the even digits, 2 denotes down-arrow, 4 left, 6 right, 8 up, and for the odd, 1 denotes END, 3 PG-DN, 7 HOME, and 9 PG-DN. CTRL-0 denotes Insert and CTRL-. denotes Delete. Backquote is obtained as CTRL-' and tilde as CTRL-''.
The effect of CTRL on respectively , CTRL, and + (all on the same closure as CTRL for convenience) is to create tertiary thumbcodes, requiring a total of three thumb presses: CTRL itself, the character it modifies, namely BS, CTRL, or +, and one more character.
The effect of CTRL-BS on the third character is as though the ALT key of a standard keyboard were held down instead of CTRL. The effect of CTRL-CTRL is as though both CTRL and ALT were held down. And the effect of CTRL-+ is as though the third character were a function key, with 1-9 being F1-F9 and a-c being F10-F12.
Other combinations of control and shift keys can be obtained via CTRL-&, CTRL-, CTRL-(, CTRL-), etc. We leave these unspecified for the time being. One use for them would be for a numeric keypad: we have put the numeric symbols in a slightly awkward position, and for extended entry of numeric data it would be preferable to put the numeric symbols at more comfortable locations.