Creating this post just as a starting point. Note that there will be both lingusitics and CS stuff to chew upon. For directly accessing the prototype, scroll down a little and you will find the links. Otherwise, it is recommended to read the intro.
Here it goes:
What is Taravinyas?

(Answer refined by AI)
Taravinyas is an experimental framework for designing compact and learnable keyboard interfaces for Brahmi-derived writing systems.
Many Indian scripts have characters organized into recognizable linguistic categories, such as place of articulation and consonant class. I wanted to explore whether that structure could be used to design a keyboard, rather than treating every character as an unrelated key or relying entirely on phonetic transliteration.
The idea is to select a character by specifying its position in a structured table. Taravinyas represents this selection using binary values, Boolean functions, Algebraic Data Types (ADTs) and validity predicates, which are then used to calculate an index into a character lookup table. (Note that the validity predicates have not been shown on the above diagram; however, they are used to see if there even exists a valid character for the specific on-off states of those 5 switches shown).
I have implemented the approach for Tamil script as a working web prototype. My current goal is to understand how well this approach generalizes to other scripts and whether it can provide a useful alternative to existing input methods.
The mathematical framework and the user interface are separate parts of the project: having a working model is the first step, not proof that the resulting keyboard is better.
What kinds of keyboards we can use with this, theoretically?
I have already implemented two, practically, viz. a layout consisting of radio buttons and checkboxes, and a steno-like layout (Vim motions-like layout).
The former is easy to understand, let's describe the latter one.

Under any keyboard, regardless of AZERTY or QWERTZ, you will be able to use the same keys for inputting choices. The keys that should be entered are mentioned in terms of the QWERTY layout. However, mobile users might not be able to use this feature on my website.
One more thing, almost like the vim mode, one can exit the textarea using Esc, and insert text into the textarea using Enter (not i).
That's it.
It'd be genuinely helpful if the prototype is shown...😅
Sure! Here is the prototype website for modern Tamil script: https://bandhanpramanik.github.io/tamil-input-engine-checkbox/
Working demo: https://youtube.com/watch?v=oHdJINcqczA
GitHub repo: https://github.com/BandhanPramanik/tamil-input-engine-checkbox
For all the scripts, I am putting sympy codes in repos: https://github.com/BandhanPramanik/taravinyas-sympy
But before you go, check out the table it was based on:
Tamil consonants: (self-made after referring to multiple sources)
| Places of Articulation | Vallinam | Mellinam | Idaiyinam | Sibilants (GRANTHA) |
|---|---|---|---|---|
| Velar | க் | ங் | - | - |
| Palatal | ச் | ஞ் | ய் | ஶ் |
| Retroflex | ட் | ண் | ழ் / ள் | ஷ் |
| Dental | த் | ந் | - | - |
| Labial | ப் | ம் | வ் | - |
| Alveolar | ற் | ன் | ர் / ல் | ஸ் |
There are three more Grantha characters taught from elementary school that we need to include: ஜ, ஹ, and க்ஷ.
Tamil vowels:
| Base vowel | Contrastive Monophthong | Diphthong |
|---|---|---|
| அ | ஆ | - |
| இ | ஈ | - |
| உ | ஊ | - |
| எ | ஏ | ஐ |
| ஒ | ஓ | ஔ |
Contrastive Monophthong simply means the one that is marked (in contrast to being unmarked). In our case, the longer/lengthened monophthong is the marked one in all the cases, so we can safely ignore this label.
Now, going deeper.
Why did you move away from trying to make the different versions of 12-key Kana keyboards for different scripts... and started doing this?

The problem is the way keyboard layouts have been thought of. Take the above example of a crammed 5x10 keyboard. Personally, I use phonetic keyboard layouts, for example, something that converts English writing into Bengali. (One can consider it as typing romaji in order to write native Japanese kana.)
However, in our languages, we have certain letters that are technically not pronounced, but are an integral part of our script. Without ড়, one will no longer be able to distinguish পরা (to wear) from পড়া (to fall, to study). Hell, because all of our sibilants are IPA /ʃ/, finding one from the phonetic keyboard is hard. One has to literally use the suggestions tab to find the correct choice. Like, let someone type "sasok" and "soshibhUshoN" and tell me if they output শাসক and শশীভূষণ respectively.
Therefore, occasionally, when I had to move to the keyboard layout (as the above image), I used the keyboard layout the image showed. And it had its own problems. A 5x10 grid is really difficult to hit on mobile phones. The keys become small, and one has to know a lot on the location of the key.
The Japanese 12-key Kana keyboard makes sense because Gojuon tables mostly have all of the 5 vowels' columns filled for every consonant sound.
However, take for example, the Bengali-Assamese script. For these two scripts, most of the characters are out of a 5x5 grid every school children learn atleast once in their life. However, there are half of the characters practically not following this grid thing. This is why we have to make the grid ourselves in certain cases.
Personally, for the Brahmi Script, I referred to Salomon and made the table properly. In the meantime, I noticed how gaps in the table are a feature rather than an inconvenience. That way, we could tighten the scope of this matrix properly.
What inspired you to make such a thing?
This is inspired from the 12-key Kana layouts the Japanese use everyday. After I tried to make Flick keyboard layouts for certain languages, it became legitimately difficult to scale... which is why I had to make this framework in order to separate the wheat from the chaff based on the intrinsic ways every character falls into a different category.
Actually, these 12-key layouts are believed to be derived from the gojuon tables, whose vowel order is derived from the a i u e o vowel order of the Brahmi script. More on gojuon tables here.
Last question, what does Taravinyas mean?
The Bengali word তারাবিন্যাস is this framework's namesake. It literally means "asterism".
Check out another blog of mine I made specifically for the technical portion: https://triangulatedexistence.mataroa.blog/blog/making-a-mathematical-model-for-better-indic-keyboards/