Turn your handwriting into a real, installable font — written on a reMarkable, extracted stroke-by-stroke, compiled with real ligatures.
Live at kalam-hand.fly.dev — bring a reMarkable and a one-time pairing code, leave with a .ttf of your own hand.
Pairing hands Kalam a reMarkable cloud token, and reMarkable's pairing model has no scoped permissions — a token can read your whole cloud. Kalam only ever touches the notebook named Kalam (push the kit, read it back), keeps the token in an in-process session that is pruned after 24 hours, and never stores your strokes beyond that session. You can revoke the pairing anytime at my.remarkable.com.
If that's still more trust than a stranger's server deserves — fair. Run it locally; the token never leaves your machine:
git clone https://github.com/adagradschool/kalam && cd kalam
./run.sh
# open http://localhost:8777That's it — the script makes a venv, installs four packages, downloads the right rmapi build for your platform, and starts the app. Python 3.10+ required.
Or with Docker, the same image that runs kalam-hand.fly.dev:
docker build -t kalam . && docker run -p 8080:8080 kalamPair with a one-time code from my.remarkable.com → the Capture Kit lands on the tablet as "Kalam" → write it with the fineliner → sync → press Done → reveal grid → name it → download the .ttf.
| step | script | out |
|---|---|---|
| typeset the kit | make_kit_v2.py |
Kalam.pdf + kit-v2.json sidecar (line + cell geometry) |
| pull & label ink | kit_extract.py |
master.json (char → stroke occurrences), line-strokes.json |
| compile the font | build_font.py |
KalamHand.ttf + glyph-grid.png QC sheet |
| machine read-back | cv_check.py / llm_check.py |
qc-report.json (flagged glyphs, line scores) |
app.py (Flask + onboard.html) wraps the whole flow behind a browser;
rmapi does the device transfer. Loose characters are captured one per
boxed cell (the kit's Typecase page), so labeling is positional — no
segmentation guesswork; sentence lines still feed ligature and variant
mining. master.json is the master source; the .ttf is a build artifact.
tools/— the live pipeline (above), plusassets/doodles,preview.html,test_qc.pydocs/— SPEC, DESIGN (visual language), WORKSTREAM (build order), ONBOARDING, POLISH
MIT — see LICENSE.