タイピングする手 Hands on the Keyboard 試作 Prototype
JP EN
キーボードを打つ両手を3Dで見るアプリです。どのキーをどの指で打つかは、タッチタイピングで一般に教えられる標準の割り当て にしました(だれもがこう打つわけではありません)。手首の動き・指の曲げ方は、骨の長さと関節の範囲からコンピュータが計算 したものです。
See two 3D hands typing on a keyboard. Which finger types each key follows the standard assignment taught for touch typing (not everyone types this way). The wrist movements and finger bending are worked out by the computer from bone lengths and joint ranges.
ながめる Watch
自分で打つ(再現する) Type yourself (replay)
自分で打つ Type yourself
キーボードを打つと、1.5 秒おくれて 画面の手が同じキーを打ちます。スマホ・タブレットは、図の下の画面のキーボードで。読むのは押したキーの位置と時刻だけ で、どこにも保存・送信しません。パスワードなどは打たないでください。
When you type on your keyboard, the hands on screen type the same keys 1.5 s later . On a phone or tablet, use the on-screen keyboard under the picture. Only which key you pressed and when is read, and nothing is saved or sent anywhere. Please do not type passwords or anything private.
画面の手がどの指で打つかは、あなたの指ではなく標準の割り当て です(キーの位置と時刻しかわからないため)。日本語入力がオンでも、そのまま打てます。
The finger the hands use is the standard finger for that key, not the finger you used (only the key and the time are known). It also works with a Japanese input method turned on.
通して再生すると、打ったもの全体(最大 300 キー)で手の動きを計算しなおし、時刻のつまみと検査の結果が使えます。
“Play it all back” works out the hand movements again for everything you typed (up to 300 keys), and then the time slider and the check results can be used.
打つ文 Text to type
■ 左右交互 ■ 同じ手 ■ 同じ指 ■ 同じキー2回 ― 点線は平均(選んだ速さ)
■ other hand ■ same hand ■ same finger ■ same key twice — the dotted line is the average (the speed you chose)
打つ速さは平均 の速さです。キーごとの間隔は、左右の手を交互に打つ組は短く、同じ指で別のキーへ動く組は長く(遠いほど長く)、語の頭(空白のあと)は長くし、毎回少しゆらしています。どれも論文に書かれた傾向をもとにした推定 で、人の打鍵を測ったデータではありません。日本語はローマ字入力で打ち、スペースで変換、Enter で確定します(変換の候補を選ぶ所は入れていません)。
The speed is the average speed. The gap before each key is shorter when the hands take turns, longer when the same finger moves to another key (longer for farther keys), longer at the start of a word (after a space), and wobbles a little every time. All of this is an estimate based on trends described in research papers, not measured keystroke data. Japanese is typed in romaji (Latin letters); Space converts to Japanese characters and Enter confirms (choosing between conversion options is not included). Capital letters are typed as small letters (Shift is not used yet).
キーボード Keyboard
キーの並び・押しこみの深さ・段の高さが変わります(寸法はどれも一般的な値と目安で、特定の製品ではありません)。文字のキーをどの指で打つかは、どれも同じ標準の割り当てです。左右に分かれたキーボードは、左右を 70mm はなし、それぞれ指先が内向きになる向きに 10 度まわしました(目安)。手動のタイプライターは丸いキーがレバーの先にあり、段の差が大きく(1段 12mm)、押しこみが深い形です(目安)。打鍵の音も種類ごとに変わります(タイプライターは、活字の棒が紙のうしろのローラーを打つ音と、紙を送る音)。
The key layout, how deep the keys press and the height of each row change (all sizes are typical values and rough guides, not any particular product). The letter keys use the same standard fingers on every keyboard. The split keyboard has its halves 70 mm apart, each turned 10° so the fingers point slightly inward (a rough guide). The manual typewriter has round keys on levers, big steps between rows (12 mm) and deep key travel (rough guides). The key sound also changes with the keyboard (on the typewriter: the type bar striking the roller behind the paper, then the paper moving along).
検査の結果 Check results
行を押すと、いちばん悪かった時刻へ跳びます。◯△✕ の境目は「ピアノを弾く手」で決めた目安です。
Click a row to jump to the worst moment. The ◯ △ ✕ limits are rough guides made for “Hands at the Piano.”
しくみ
指の割り当て : キーごとに打つ指が決まっています(標準のタッチタイピングの割り当て。「6」は右手の人さし指、スペースは右手の親指にしました)。人によって割り当てはちがい、使う指が少ない打ち方の人も多くいます。
手首 : 押している指(と、もうすぐ押す指)が、力を抜いた形のまま届く位置へ手首を近づけながら、急に動かないようになめらかにつなぎます。手はホームポジションへゆるく引かれます。届かない瞬間や、指が伸びきりそうな瞬間があれば、そこを重くして計算し直します。手首から先を水平に回す向きも一緒に決めます。
指 : 指先の目標から関節の角度を逆算します(逆運動学)。関節は人の範囲で止め、先の2つの関節は連動させます。押していない指はキーの上で力を抜いて休み、次に打つキーの上へ先回りします。
打つ : 指は下りてくる勢いのままキーを押し下げ、底で止まります(ふつうのキーボードで 4mm、約 10ms)。持ち上げる高さは打つ速さで変わります(ピアノの研究の値をもとにした目安で、タイピングで測った値ではありません)。
届かないキー : 骨の長さと関節の範囲で届かなければ、押せなかったキーになります。届くように数値を合わせることはしません。
打つ間隔 (ながめる): 同じ手のちがう指を 1 として、左右交互 0.85 倍、同じ指でちがうキー 1.3 倍+1キー分の距離ごとに 0.12、同じキーを2回 1.1 倍、語の頭 1.2 倍。毎回、ばらつき約 15% のゆらぎをかけ、最後に平均が選んだ速さになるようにそろえます。Dhakal ほか (2018) の本文にある傾向(左右交互は同じ手より速い、同じ指はさらに遅い、語の頭は遅い)をもとにした推定です。
自分で打つ : 押したキーの位置と、押した・離した時刻から、同じ計算で手の動きを作ります。計算に時間がかかるので、打っているあいだは画面の裏(Web Worker)で直近の 5 秒分だけを計算し、1.5 秒おくれて表示します。
検査 : 1/120 秒ごとに、届かなさ・関節の限界・指どうしのめりこみ・キーへのめりこみ・左右の手のぶつかり・速さを測ります。
手のしくみ(骨・皮ふ・筋肉の模型・関節の計算)は、同じシリーズの「ピアノを弾く手」のものを使っています。キーボードの寸法(キーの間隔 19.05mm、押しこみ 4mm、段の高さ)は一般的な値と目安です。
How it works
Finger for each key : each key has a set finger (the standard touch-typing assignment; here “6” is the right index finger and Space is the right thumb). People differ, and many type with fewer fingers.
Wrist : the wrist moves toward where the pressing finger (and the finger about to press) can reach in its relaxed shape, joined smoothly so it never jumps. The hand is gently pulled back to the home position. Moments when a finger cannot reach, or is about to straighten all the way, are weighted more and worked out again. The sideways turn of the hand at the wrist is chosen at the same time.
Fingers : the joint angles are worked backward from the fingertip target (inverse kinematics). Joints stop at human limits, and the last two joints bend together. Fingers that are not pressing rest lightly on the keys and move ahead over their next key.
Pressing : the finger keeps its downward speed and pushes the key to the bottom (4 mm in about 10 ms on a standard keyboard). How high fingers lift depends on the speed (a rough guide from piano research, not measured in typing).
Keys out of reach : if the bone lengths and joint ranges cannot reach a key, it counts as not pressed. Numbers are never adjusted just to make it reach.
Timing (Watch): taking a different finger of the same hand as 1, the gap is ×0.85 when the hands take turns, ×1.3 plus 0.12 per key of distance for the same finger on another key, ×1.1 for the same key twice, and ×1.2 at the start of a word. Each gap wobbles by about 15%, and finally everything is scaled so the average matches the chosen speed. This is an estimate based on trends described in Dhakal et al. (2018): taking turns is faster than one hand, the same finger is slower still, and word starts are slower.
Type yourself : the hand movements are worked out the same way from which key you pressed and when you pressed and released it. Because it takes time, while you type only the last 5 seconds are worked out in the background (a Web Worker), shown 1.5 s late.
Checks : every 1/120 s it measures reach, joint limits, fingers overlapping, sinking into keys, the two hands bumping, and speeds.
The hands (bones, skin, muscle model and joint calculations) come from “Hands at the Piano” in the same series. Keyboard sizes (19.05 mm between keys, 4 mm key travel, row heights) are typical values and rough guides.
おもな出どころ・使っているもの Main sources and credits
指の動きを測ったデータ(モーションキャプチャ)の研究はありますが、このアプリでは使っていません。指の動きはすべて計算によるものです。 There is research that measured finger movements (motion capture), but this app does not use it. All finger movements are calculated.
Guinness World Records “Fastest typist on an electronic typewriter” (1946 年、1分に 216 語)。 (1946, 216 words in a minute). ページ Page (打つ速さの「世界記録の速さ」。1語=5文字(空白をふくむ)の一般的な数え方で 1分に約 1080 キー。タイプライターでの記録で、このアプリのキーボードとはちがいます) (the “world-record speed” option: counting a word as 5 characters including the space, the usual way, about 1080 keys a minute. It was set on a typewriter, not on the keyboards in this app)
Asonov, Agrawal (2004) Keyboard Acoustic Emanations. IEEE Symposium on Security and Privacy (打鍵の音の形: 押す音は約 10ms のあいだに「指が触れる音」と「キーが板に当たる音」の2つの山、離す音はそれより小さく、1回の打鍵は約 100ms。音はこの形をまねてブラウザの中で合成しています) (the shape of a keystroke sound: the press sound has two peaks about 10 ms apart, the finger touching the key and the key hitting the plate; the release sound is much quieter; one keystroke lasts about 100 ms. The sounds here are made in the browser following this shape)
Dhakal, Feit, Kristensson, Oulasvirta (2018) Observations on Typing from 136 Million Keystrokes. CHI 2018. PDF (論文の本文に書かれた、打つ間隔の傾向だけを使っています。データは使っていません) (only the timing trends described in the paper are used, not the data)
Buryanov, Kotiuk (2010) Proportions of hand segments. International Journal of Morphology 28(3). PDF (指の骨の長さ。「ピアノを弾く手」と同じ) (finger bone lengths, as in “Hands at the Piano”)
Häger-Ross, Schieber (2000) Quantifying the independence of human finger movements. Journal of Neuroscience 20(22). PMC (1本の指を動かすと、となりの指がついてくる割合) (how much neighboring fingers follow when one finger moves)
Dalla Bella, Palmer (2011) Rate Effects on Timing, Key Velocity, and Finger Kinematics in Piano Performance. PLoS ONE 6(6). PMC / Goebl, Palmer (2008) Experimental Brain Research 186 (打つ前の指の持ち上げ。ピアノの研究で、タイピングでは目安として使っています) (how high fingers lift before a key; piano research, used here as a rough guide for typing)
手の皮ふ・骨・筋肉の模型の出どころは「ピアノを弾く手」の「おもな出どころ」をご覧ください。 For the sources of the skin, bones and muscle model, see “Main sources” in “Hands at the Piano.”
打鍵の音はブラウザの中で合成しています(録音した音は使っていません)。使っているもの: Three.js(MIT ライセンス。光のにじみは Three.js に付いている EffectComposer・UnrealBloomPass)、Google Fonts(SIL Open Font License)。打つ文はこのアプリで書いたもの、昔からある言葉、または著作権の切れた文(宮沢賢治「雨ニモマケズ」、ルイス・キャロル『不思議の国のアリス』)です。
Key sounds are made in the browser (no recordings). Uses: Three.js (MIT License; the glow uses EffectComposer and UnrealBloomPass that come with Three.js) and Google Fonts (SIL Open Font License). The texts were written for this app, are traditional sayings, or are public domain (Kenji Miyazawa's “Ame ni mo makezu” and Lewis Carroll's “Alice's Adventures in Wonderland”).