On desktop, I use the AI-designed Halmak Keyboard, and its had great results.
Rather than manually picking letter positions, Halmak was designed by an evolutionary algorithm, based on a given set of criteria, and sample text.
I designed the original english thumb-key layout manually, with trial-and-error, and based essentially on 3 criteria:
- Letter frequency
- Alternating thumbs
- Thumbs come from the bottom corners, so lower and edge tiles are easier than higher.
But I did not take into account things like digrams / trigrams, and I don’t know enough about evolutionary algorithms to do it.
Would anyone be interested in tackling this problem?
I’m not a programmer but there is this open source tool called genkey, which can generate desktop keyboard layouts. Maybe it could be somehow adapted for generating 3x3 layouts.
I hope it helps in someway.
I’d be willing to give it a try. Have you done any work on the hand movement model, like he shows at 2:06 in the video you posted? Mine would be different from yours, since I type with just one thumb.
The important part is how much time it takes to type key 1 after typing key 2, right? Maybe just logs of people typing with time stamps for every key or something? Then I could make a map to teach the AI with.
Are you particularly attached to the evolutionary algorithm? I might try a few different ones.
Oh it looks like MessagEase has. I should’ve looked at their paper first.
MessageEase unfortunately didn’t do any optimization after their first 9 letters ( and I don’t fully trust what they did there either ). When it came to the swipes, they based it off of whether the letter was curly-shaped or not (curly shaped letters go off the center key)
@Dessalines where did this end up? I have experience with genetic / evolutionary and similarly applicable optimization algorithms and would be interested in helping to optimize the layout.
We could definitely still use some help. Check the github issue, but dev has stalled on it.