Think ASLFingerspelling & Initialization

Try it · no signup needed

Fingerspell the missing word.

Eight short fill-in-the-blank puzzles. Sign each missing word at your camera, one letter at a time. The recognizer runs entirely in your browser — your camera frames never leave this device.

How we keep that promise. The classifier loads as JavaScript and WebAssembly from a public CDN, then runs entirely on your device. Open your browser's Network tab while you sign — you'll see the model load once, then nothing. No video frames are ever uploaded. This page transmits zero data of its own.

Ready when you are.

Click below to turn on your camera. Your browser will ask permission.

Your camera runs locally. Nothing is uploaded. You can stop the camera any time.

Can't use a camera right now? Skip to typed mode or try our typed quiz preview.

The 16 letters this engine recognizes

The ten dimmed letters — J K M N P Q T X Z — need camera-unfriendly motion or finger combinations. In the full course, questions whose answers use those letters automatically use typed input. Same credit, same mastery either way.

← Try the typed quiz preview See the full curriculum →
What's happening under the hood

This page loads /thinkasl/assets/js/camera-engine.js — the recognizer ported from the 1891 Signal v2 work. The pipeline is: MediaPipe Hands extracts 21 landmarks per frame; a TensorFlow.js MLP (trained on 23.7k samples from the ASL Alphabet dataset, ≥97% val accuracy) classifies the handshape; hand-coded rules supplement for gestures the model wasn't trained on (ILY / OK / NOK); a hybrid dispatcher merges all of it with context-target boosting so the recognizer locks faster on the letter you're hunting.

MediaPipe + TensorFlow.js load once from cdn.jsdelivr.net; the model weights load from /thinkasl/assets/model/ on this domain. After that, recognition runs entirely on your device.

Verify it yourself. Open your browser's developer tools (View → Developer → Network on most browsers) and watch the Network tab while you sign. You'll see the page's HTML, JavaScript, the MediaPipe assets, and the model weights load once — then nothing. Filter for "media" or "xhr" to confirm no video is being uploaded.

The classifier returns one of 29 tokens: 16 letters (A B C D E F G I L O R S U V W Y), 10 digits, and 3 gestures (ILY, OK, NOK). Off-limits letters (J K M N P Q T X Z) need motion or finger combinations that we can't classify reliably from a single webcam frame, so they're typed-only in the full course.

Source: the engine module is in the static assets folder of this site, readable from the network tab. Same file, same logic.