TutorLoom
The learning platform for companies, colleges and training institutes. Free and open source, with an Enterprise edition.
Photograph a Tamil-Brahmi inscription, mark its letters, and see what each letter is, how sure the reader is, and every way the line can be read. Runs on your phone, offline.
EducationTypeScript · PythonGitHub @HavenLeno22OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Read Tamil-Brahmi inscriptions from a photo: each letter, how sure it is, and every reading. Offline, in the browser. Never makes up a meaning.
Taken from the repository README
Loading the full README.
Read the full README ↗Photograph a 2,000-year-old Tamil inscription on a cave, a rock or a potsherd, draw a box around each letter, and Kalvettu tells you what each letter is, how sure it is, and every way the line can be read. It never makes up a meaning.
Tamil-Brahmi is the script of the earliest Tamil inscriptions, from about the 3rd century BCE to the 4th century CE. It is carved on the rock shelters of Tamil Nadu's hills (Mangulam, Jambai, Arittapatti and many more), but almost no visitor can read it, and the published readings sit in books and journals. Kalvettu is a first step: a letter reader that runs on a phone, offline, and teaches the script along the way.
Open it: https://havenleno22.github.io/kalvettu/ (works in any phone or desktop browser; add it to the home screen to keep it offline).
| Page | What it is for |
|---|---|
| Read | Take or choose a photo, drag a box around each letter (move it, resize it, or Tighten box if it is loose), and see each letter with how sure the reader is, its other possibilities, and the whole line in Tamil-Brahmi, Latin letters (ISO 15919) and Tamil |
| Learn | Five short lessons (how the script works, the vowels, the eighteen consonants, the vowel signs, the dot and the three spellings), then practice: a letter on the stone, four answers |
| Write | Type a word or a name in Tamil (or tap the letters) and see it in Tamil-Brahmi, spelled the way each period would have spelled it; save it as a picture or copy it as Unicode text |
| Guide | Step by step from finding an inscription to reading it: photographing, drawing boxes, what the marks mean, a glossary and common questions |
| Letters | Every letter and vowel sign, and one word in three spellings |
| About | How the reader was made and measured |
Each number with what it was measured on (details in docs/model.md):
| Test | Result |
|---|---|
| Held-out synthetic validation set, 20,000 crops (base letter, vowel sign and dot all right) | 86.6% |
| Calibration error on the same set (how far "90% sure" is from being right 90% of the time) | 1.8% |
| A real photograph of the Jambai inscription, 21 letters | 18 of 21, draft |
The Jambai result is not yet a fair test: the labels have not been checked by an epigraphist, and the same inscription was used while building the training data. A clean test set from other inscriptions, labelled by an expert, is the next step.
photo ─► your boxes ─► tighten to the strokes ─► 96×96 crop ─► letter reader (ONNX, in the browser)
│ base letter, vowel sign, dot
▼
readings under TB-I, TB-II, TB-III ◄── calibrated probabilities, impossible forms removed
The app (Node 20 or newer):
cd app
npm install
npm test # reading rules, letter logic, box tightening, Tamil to Tamil-Brahmi
npm run dev # http://localhost:5173
The machine-learning side (Python 3.11 with uv) needs two fonts that
are not in this repository. Put them in references/:
references/adinatha/Adinatha-Tamil-Brahmi/Adinatha-Tamil-Brahmi.otf: Adinatha Tamil Brahmi
(Vinodh Rajan, Shriramana Sharma and Udhaya Sankar, 2012, SIL Open Font License), from
virtualvinodh.comreferences/NotoSansBrahmi-Regular.ttf: Noto Sans Brahmi (SIL Open Font License), the same file
as app/public/fonts/NotoSansBrahmi-Regular.ttfcd ml
uv sync
uv run pytest -q
docs/PROGRESS.md has every command for making data, training, evaluating and exporting a model, and what comes next.
| Folder | What is in it |
|---|---|
app/ | The web app (React, TypeScript, Vite, ONNX Runtime Web), offline-first |
ml/ | Python: sign inventory, reading rules, synthetic data, training, evaluation, export |
spec/ | Files both halves share: the inventory and the reading test cases |
data/ | Licence records and draft labels; images and generated data stay out of the repository (data/README.md) |
docs/ | Design, script reference, model card, progress |
app/public/glyphs/ are derived from Adinatha Tamil Brahmi and keep its SIL
Open Font License (text); they do not use its
reserved font name.app/public/fonts/: SIL Open Font License (text).data/real/*/manifest.jsonl.If you read Tamil-Brahmi professionally, switch on Expert labels in Read, correct the letters and export them. Checked labels are what Kalvettu needs most. Open an issue, or write to [email protected].
Built by Haven Leno J · LinkedIn · Portfolio