Skip to content
adagradschoolPublic

About

Turn your reMarkable handwriting into a real, installable font — stroke by stroke, ligatures included

Resources

Stars

8 stars

Watchers

0 watching

Forks

Latest commit

 

History

3 Commits

Folders and files

Repository files navigation

Kalam

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.

Privacy, plainly

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:

Run it yourself

git clone https://github.com/adagradschool/kalam && cd kalam
./run.sh
# open http://localhost:8777

That'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 kalam

Pair 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.

The pipeline (tools/)

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.

Layout

  • tools/ — the live pipeline (above), plus assets/ doodles, preview.html, test_qc.py
  • docs/ — SPEC, DESIGN (visual language), WORKSTREAM (build order), ONBOARDING, POLISH

License

MIT — see LICENSE.

About

Turn your reMarkable handwriting into a real, installable font — stroke by stroke, ligatures included

Resources

Stars

8 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages