From text to a tap in your hand
Every message goes through the same five steps. The first three happen in milliseconds, before the phone vibrates at all.
-
Text comes in
You type, paste or dictate it, a hearing person speaks it in Talk to me, or it comes from a demo notification. Every piece of text passes through one shared entry point, so it could later be summarised by an AI first.
-
Text becomes Braille cells
Each character is looked up in a Grade 1 Unified English Braille table: 26 letters, digits and 27 punctuation marks. Extra cells are added where Braille needs them: a capital sign before capitals, a number sign before numbers. Characters with no Braille match are skipped and reported.
-
Cells become a timed rhythm
Using your timing settings, each cell becomes a precise list: soft tick 12 ms, silence 100 ms, tap 40 ms, and so on. Silences next to each other are merged. Every tap remembers which letter and which dot it belongs to.
-
The whole rhythm is sent to the motor in one go
The list is converted into two arrays, durations and strengths, and handed to Android's
VibrationEffect.createWaveformin a single call. Android plays it, so the timing stays exact even if the screen is busy. -
The screen follows along
About 60 times a second, the app works out which dot is vibrating right now, lights it up on a large Braille cell and highlights the letter in the text. Sighted helpers see exactly what is being felt.
Inside one letter
Here is the letter h with the standard settings and the start tick on. The numbers are milliseconds.
| Part | What you feel | Length |
|---|---|---|
| Start tick | A soft, short pulse at 35% strength | 12 ms |
| Dot 1 | Tap | 100 + 40 ms |
| Dot 2 | Tap | 100 + 40 ms |
| Dot 3 | Silence | 100 + 50 ms |
| Dot 4 | Silence | 100 + 50 ms |
| Dot 5 | Tap | 100 + 40 ms |
| Dot 6 | Silence | 100 + 50 ms |
| Total | Then a 300 ms pause before the next letter | 882 ms |
Keeping letters from blurring
The app checks your settings as you change them and warns you when a combination is likely to cause sensory blur:
- The pause between letters must be longer than the pause between dots, or letters run together.
- It should ideally be at least twice as long, so letter boundaries are easy to feel.
- The pause between words must be longer than the pause between letters.
- Taps shorter than 20 ms may be too weak on phones with older motors.
- A start tick almost as strong as a dot may be mistaken for one.
How training works
Each session is ten questions. A question vibrates, then the screen shows only a pulsing circle so nobody can read the answer off the display. You answer by tapping a dot, typing, or speaking. The app understands spoken answers like "bee", "see" or "the letter q". You get the result as vibration too: two light taps for correct, one long buzz for wrong.
- Unlocking: a level is mastered when at least 80% of your last 20 answers are correct, with at least 10 answers. That unlocks the next level.
- Adaptive practice: every letter has a weight. New letters start at 2. Letters you get wrong grow towards 4, letters you always get right shrink towards 1. Heavier letters come up more often.
- No repeats: the same question never appears twice in a row.
How progress is measured
Every answer is saved on the phone with what was asked, what you answered, how long you took and the speed you were using. From that the app calculates:
- Accuracy: correct answers divided by all answers.
- Day streak: days in a row with practice, ending today or yesterday.
- Reading speed: correctly read letters divided by 5, per minute of vibration felt. For example, reading "cat" correctly from 12 seconds of vibration is 3 words per minute.
- Letters to focus on: letters with at least three tries and under 70% accuracy.