The Typing Cat · Lab · Compare layouts

Hand anatomy

Bones, joint ranges and wrist limits behind every finger and wrist number in Compare layouts. Change a bone and see which keys your fingers can still reach on their own.

ProfileMedium180 mm hand
Finger-only keys26of 45 keys, no wrist
Wrist travel · QWERTY test1.44 mold rule 15.23 m
Profile
Editing
Use in Compare layouts →

Skeleton — top view

Right hand · palm down · click a finger
TO SCALE · 1.9 px/mm
Thumb · 45.2 mmThumb · 35.3 mmThumb · 28.4 mmIndex · 67.3 mmIndex · 47.7 mmIndex · 25.7 mmIndex · 17.5 mmMiddle · 67.1 mmMiddle · 49.9 mmMiddle · 30.6 mmMiddle · 19.4 mmRing · 60.5 mmRing · 46.6 mmRing · 29.7 mmRing · 19.3 mmPinky · 53.1 mmPinky · 37.1 mmPinky · 21.1 mmPinky · 16.7 mmThumbIndexMiddleRingPinkyWrist pivot
Fingertip at home rowFinger alone+ wrist rotation
  • 1Metacarpal 67.3 mm
  • 2Proximal 47.7 mm
  • 3Middle 25.7 mm
  • 4Distal 17.5 mm

Side view — Index

Home pose solved from bones, joint ranges and knuckle height
BottomHomeTopH 30 mm
Pose · MCP -8° · PIP 56° · DIP 38°Back 23.4 · fwd 23.4 mm

Finger → key map

Click a key to give it to the right index
1 → L pinky12 → L ring23 → L middle34 → L index45 → L index56 → R index67 → R index78 → R middle89 → R ring90 → R pinky0- → R pinky-= → R pinky=Q → L pinkyQW → L ringWE → L middleER → L indexRT → L indexTY → R indexYU → R indexUI → R middleIO → R ringOP → R pinkyP[ → R pinky[] → R pinky]A → L pinkyAS → L ringSD → L middleDF → L indexFG → L indexGH → R indexHJ → R indexJK → R middleKL → R ringL; → R pinky;' → R pinky'Z → L pinkyZX → L ringXC → L middleCV → L indexVB → L indexBN → R indexNM → R indexM, → R middle,. → R ring./ → R pinky/
L pinkyL ringL middleL indexR indexR middleR ringR pinky
Standard touch-typing map.

Settings

Both hands · Index
AUTO180 mm
Wrist crease to the tip of the middle finger
Every bone scales from hand length using standard proportions (Buchholz et al., 1992) until you set it by hand.
AUTO67.3 mm
AUTO47.7 mm
AUTO25.7 mm
AUTO17.5 mm
90°
Knuckle bending down
20°
Knuckle bending back, past straight
20°
Sets sideways reach without the wrist
100°
0.67 × PIP
The fingertip joint can’t move on its own; about ⅔ is typical
125°
How far a curled fingertip may tilt back — past 90° you strike with the nail side
Wrist
The hand can slide to reach far keys; that slide is counted as wrist travel.
20°
30°
straight
How the hand sits on the forearm at home, on a setup that keeps it straight. Your keyboard bends it 14° more towards the pinky. Turning towards the pinky uses up ulnar range: 34.1° radial and 15.9° ulnar are left. The 3D hands turn at the wrist by it.
15°
Lets knuckles rise or drop ±15.7 mm while reaching
30 mm
50%
0% = fingers long and flat at home, 100% = fully curled
ANSI row-staggeredRows offset 0.5u, 0.25u, 0.5u · 2.25u left Shift · wide single-row Enter. Change it with Keyboard above the page. See all 15 shapes
19.05 mm

Reach map

What each key needs, from its finger’s home key. Click a key.
1 · L pinky · wrist moves 18.2 mm12 · L ring · wrist moves 14.4 mm23 · L middle · wrist moves 13.9 mm34 · L index · wrist moves 16.0 mm45 · L index · wrist moves 14.8 mm56 · R index · wrist moves 20.3 mm67 · R index · wrist moves 15.8 mm78 · R middle · wrist moves 13.6 mm89 · R ring · wrist moves 14.0 mm90 · R pinky · wrist moves 18.0 mm0- · R pinky · wrist moves 16.9 mm-= · R pinky · wrist moves 20.7 mm=Q · L pinky · finger onlyQW · L ring · finger onlyWE · L middle · finger onlyER · L index · finger onlyRT · L index · wrist 1.0° radialTY · R index · wrist 5.1° radialYU · R index · finger onlyUI · R middle · finger onlyIO · R ring · finger onlyOP · R pinky · finger onlyP[ · R pinky · wrist 2.9° ulnar[] · R pinky · wrist moves 5.1 mm]A · L pinky · home keyAS · L ring · home keySD · L middle · home keyDF · L index · home keyFG · L index · finger onlyGH · R index · finger onlyHJ · R index · home keyJK · R middle · home keyKL · R ring · home keyL; · R pinky · home key;' · R pinky · finger only'Z · L pinky · wrist 0.3° radialZX · L ring · finger onlyXC · L middle · finger onlyCV · L index · finger onlyVB · L index · wrist 7.2° radialBN · R index · finger onlyNM · R index · finger onlyM, · R middle · finger only,. · R ring · finger only./ · R pinky · wrist 0.3° ulnar/
HomeFinger only18+ wrist rotation6+ wrist move13
T
Left index14.3 mm sideways · 19.1 mm forward (23.8 mm)Needs: wrist 1.0° radialCost: fingertip 47.6 mm · wrist 2.1° · 0.0 mm (there and back, weighted)

Reach per finger · Right hand

Fingertip reach from home without moving the wrist (mm)
FingerBackForwardSideWrist R
Index23.423.420.4133
Middle25.525.517.0140
Ring25.125.116.1129
Pinky21.421.419.8105

One key step is 19.05 mm. Wrist R = distance from wrist pivot to fingertip.

Effect on the 1-minute test

QWERTY · 4674 keystrokes · fingers return home
MetricOld ruleAnatomy
Fingertip travel147.47 m147.47 m
Effort-weighted travel—154.81 m
Wrist rotation—3350°
Wrist travel15.23 m1.44 m
Keystrokes using the wrist65%13%

Old rule: wrist moves for any key more than one key step from home. Shift and Space aren’t counted.

How it’s calculated

Pose (MCP a, PIP b, DIP = k·b, comfort c):
 x = L1·cos a + L2·cos(a+b) + L3·cos(a+b+k·b)
 z = L1·sin a + L2·sin(a+b) + L3·sin(a+b+k·b)
 keep if |z − H| ≤ MC·sin(c·pitch)
   and 15° ≤ a+b+k·b ≤ tip limit

Reach:
 home = xmax − curl·(xmax − xmin)
 fwd = xmax − home   back = home − xmin
 side = home·sin(c·spread)   R = MC + home

Key at (dx, dy) from home key:
 e = (dx/side)² + (dy/fwd|back)²
 e ≤ 1  → finger only
 side' = side + R·sin(c·deviation)
 e' ≤ 1 → wrist rotates θ = asin(need/R)
 else   → wrist moves d·(1 − 1/√e')

Cost (return home): 2·w·d, 2·θ, 2·move
Now: c = 0.90, k = 0.67, tip limit = 125°, key step = 19.05 mm.

Where this profile is used

It’s saved in this browser as you change it, and Compare layouts and 3D hands read it from there: finger and wrist travel, which finger types each key, hand size and how far the wrists turn. The 3D hands also sit higher or lower with knuckle height, further back or forward with curl and the bones, and turn at the wrist by its resting angle. Export JSON to keep it or move it to another browser.