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?
8 Comments
Cassilda@lemmygrad.ml · 3 pts · 3y
I do agree that digrams/trigrams turn out to be the most important thing in this kind of layout. The MessagEase layout seems to get a lot of digrams right, even if it's only by accident. I think the real problem is that we don't have a very good model for the relative costs of things like non-alternating thumbs and sliding from the same box after a tap. I think the optimization algorithm would probably not be that hard relative to quantifying the costs of different placements.
dessalines@lemmy.ml · 2 pts · 3y
True, its tough to say whether things like having the O and U , on the same key is optimal. We do really need someone to help AI design layouts tho.
SoftBun@lemmy.ml · 1 pts · 3y
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.
Lewis144@lemmy.ml · 0 pts · 3y
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.
Lewis144@lemmy.ml · 0 pts · 3y
Oh it looks like MessagEase has. I should've looked at their paper first.
dessalines@lemmy.ml · 0 pts · 3y
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)
Cargon@lemmy.ml · 2 pts · 2y
@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.
dessalines@lemmy.ml · 3 pts · 2y
We could definitely still use some help. Check the github issue, but dev has stalled on it.