Colihoq2
(This analyzer is in development so expect bugs). Welcome to the layouts playground. On this site it is possible to analyze and diagnose problematic bigrams in a given layout. This requires tuning the weights under the collapsable weight button and the keyease and keycomfort maps. It is possible to change the keys using drag and drop. The keymap supports binding single keys (such as a, b, ß) and also bigrams (th, in, an, ...), by right clicking on a key then entering the value below. Note that trigrams are not supported currently. Fingers are indexed starting from 0 where 0 = left pinky, 1 = left ring finger, 4 = left thumb, 5 = right thumb, ..., 9 = right pinky. The finger map is color coded and can be adjusted by changing the finger index. Currently this analyzer supports Ansi and split keyboards, which has an effect of how the distances between keys are calculated which comes into play when calculating the finger speed metric. Another feature is the ability to analyze a layout with respect to multiple weighted corpora which makes it possible to optimize layouts for multiple languages simultaneously.
Layout Scoring Information

Note: The terminology/abbreviations such as SFS and SFB can be looked up on layouts.wiki.

Scoring Formula:
Total Score:
score.TotalScore = keyEase + fspeed + comfort + roll + Alternates + onehand + redirects
Score Alternates:
score.Alternates = zeroalternates + onealternates + twoalternates + threealternates
Alternate Calculation:
[type]alternates  := w.[type]ThumbAlternates * (tri.[type]ThumbAlternates - tri.AlternnateSFS) / tri.TotalTrigrams (where type can be 3-thumb)
      alternates := sum [type]alternates (where type can be 3-thum
In/Out Roll Calculations:
inroll := w.Roll * w.InOutRatio * inroll%
outroll := w.Roll * outroll%
3-inroll := w.Roll * w.inoutratio * outroll%
3-outroll := w.Roll * outroll
roll := inroll + outroll + 3-inroll + 3-outroll
      
Redirection Calculations:
[type]redir := w.[type]redir * [type]redir%
      redirects := sum [type]redir  (where type can be strong, strongish, weakish, weak)
Key Ease Calculation:
keyease := sum keyeaseweight[key_row][key_col] * key% * w.keyease
TODO: explain fspeed (a metric used to measure how fast the finger has to move on average, see SFB, SFS) + comfort (depends on the comfort map).

Weights
Trigram Weights
1
2
3
4
5
6
7
8
9
0
q
w
e
r
t
y
u
i
o
p
[
]
a
s
d
f
g
h
j
k
l
;
'
z
x
c
v
b
n
m
,
.
/
<spc>
Score ComponentValue
Fastredir0.000
Redir0.000
Onehand0.000
Alternates0.000
Outroll0.000
Inroll0.000
Comfort0.000
Fspeed0.000
KeyEase0.000
Total Score0.000
Finger speed: 1.000123456789
Keyease: 0.000123456789
Comfort: 0.00
SFB: 0.00%
SFS: 0.00%
Rolls 0.00% (0.00/0.00%) 3-rolls 0.00% (0.00/0.00%) Redirects 0.00 % Alternates NaN% Same Finger Triple 0.00 % Invalid 0.00 %