Ortho33 is a constrained input system designed to work with a 3x3 ortholinear keypad, such as the one found on a standard numberpad.

The system is a chorded system, consisting of combination of 3 unique button presses that can be pressed in any order. On a 3x3 grid, these produce shapes, which can be used to help remember different gestures.


Strange Symbols require Strange Input Systems.

The Ortho33 input system was devised initially as a potential way to input in symbols and runes for esolangs and notation systems, such as those being developed for the Gestlings Project.

The idea to use a 3x3 grid was inspired by an interest in ortholinear and grid interfaces such as the planck and the Monome grid. 3x3 grids are practically because they exist on numberpads, which are both ubiquitous and inexpensive. Furthermore, 3x3 keypads are compact, and could lend themselves well towards mobile and portable creative workflows.

At the time of writing this, this input system is only theoretical and hasn't been utilized outside of a prototyping enviornment. A block editor for symbols is in the works.


One of the core concepts of using a 3x3 grid is that shapes become realized as visual-spatial relationships, which can be used as an mnemonic device.

The table below shows a set of curated shapes, each with a label that very abstractly describes what the shape is:

table of named shapes

Some names take more creative liberties than others. For example, "dog" is named because the shape somewhat resembles a Yorkshire Terrier. "Pegasus" is also the dog shape, but raised a little bit higher, which suggests a flying dog. Pegasus is the name of a flying horse, which is conceptually related to a flying dog.

Ergonomic Considerations

The ortho33 system was developed with ergonomics in mind.

ortho33 gestures are intended to be performed on a mechanicm numberpad using the right hand (though it could easily be configured for the left hand as well), using the index, middle, and ring finger. 3 fingers map to 3 keys.

It is important to devise an intuition for a comfortable fingering system for inputting in shapes.

Rolling your fingers on the table, you will find that ring, middle, index is a more comfortable direction than index, middle, ring. Finger movement should always be used in this order. If two fingers are being used, the order would be middle, then index. One should avoid having to repeat a finger. This alternating finger strategy is done in order to maintain a rhythm.

Some shapes are more comfortable than others. Rows such as "321", "654", and "987" are quite comfortable, while columns like "471", "582", and "693", require more contortion of the hand (uncomfortable), or repeating a finger (throws off the rhythm).

Leader Key

To add more extensibility, a "leader" key can be picked to execute commands. This key gets pressed at the start of a chord, and changes the state of the input mode to listen for another layer of shapes instead of the 3-shapes.

In the current ortho33 prototype, 2-key chord shapes are made with the leader key, allowing for a total of 9 extra shapes that can be used for commands.

In practice, it has been important to have a visual indicator when the leader key has been activated, and a way to cancel the current shape, such as hitting a key twice.

'1' (bottom left) is a good candidate for a leader key because it contrasts from the the right-to-left ring-middle-index ergonomic affordances. Any chorded gesture starting with 1 would cause a bit of a break in the shape input rhythm, which is desirable since it is a dinstinctly different verb.

Rotary Encoder Support

In the ortho33 prototype, ascii keys corresponding counter-clockwise and clockwise have been added in order to support ascii-driven multimedia rotary encoders such as the bnr1. This extra feature was added simply because low-latency ASCII input was the only thing I managed to get working on the BNR1 via QMK so far (raw HID didn't work, and MIDI is TBD, though I'm starting to appreciate the elegance of it being a plug-and-play keyboard).

home | index