Okay, I read the model page again, here’s my summary:
For any particular triad of three characters in a row:
triad effort
e =
kb ⋅
k₁
b₁(1 +
k₂
b₂(1 +
k₃
b₃)) +
kp ⋅
k₁
p₁(1 +
k₂
p₂(1 +
k₃
p₃)) +
ks ⋅ sWhere the
bs are "base effort" (roughly, distance from the "home" position),
ps are "penalty" (each penalty value is made up of four subparts: base penalty, hand penalty, row penalty, and finger penalty), and
s is the "stroke path" which is a basically arbitrary value that you look up in a table of 100+ entries, and the
ks represent arbitrary weights that can be adjusted to a user’s preferences.
Default parameter values:
•
kb = 0.3555,
kp = 0.6423,
ks = 0.4268
•
k₁ = 1,
k₂ = 0.367,
k₃ = 0.235
• base penalty and hand penalty default to zero, so the default penalty
p for each key is the sum of: {1.9632 for the number row or 0.6544 for the top row or 0 for the home row or 1.3088 for the bottom row} + {0 for the index finger or 0 for the middle finger or 1.2974 for the ring finger or 2.5948 for the pinky}.
Here are the base values
b:
And here’s the table of "stroke path" values
s:
Now, I dunno about you, but I think this model is very complex without sufficient evidence (or really any evidence) for taking the form it has. It seems totally arbitrary to me.
I also find this model very difficult to reason about. Like, if I think up a particular triad of characters, it takes a few minutes to calculate out the score for it, if I try to do it manually. I should try to figure out how to get the code running to actually compute some example triad/word/sentence scores. I can’t intuitively guess which triads are going to be more or less expensive, because the model has so many moving parts.
As one example oddity: any triad which begins on 'f', 'd', 'j', or 'k' ends up with both the "base effort" and "penalty" portions of the score as 0, so the full difficulty of any such triad is left entirely up to the "stroke path" component.