Printable material for sound practice, made for one child. Every word is filtered against the sounds that child cannot say yet.
Making materials takes a speech therapist an hour a day — it stands in the working timetable as a line of its own. Paper albums exist in plenty and all share one limit: a printed page cannot know which other sounds this child gets wrong. A child practising [r] who cannot say [sh] must not be handed the word “shirt”.
The words sit in three card files: 1596 nouns, 356 verbs, 253 adjectives, split by the sound each one forces. Every entry records how the word is spoken — “сад” is written with д and said with [т] — and which other correctable sounds it drags in. The filter reads that second field: tick [ш] for a child, and every word carrying [ш] leaves.
Two exercises on the sheet change the word: “one — many” and “say it fondly”. A rule that works on word endings gets those wrong — 15 errors out of 16 on plurals — so both forms are written by hand and checked twice, independently.

| the word | what the rule produced | what goes on the sheet |
|---|---|---|
| стул chair | пять стулов | пять стульев |
| угол corner | два угола | два угла |
| лоб forehead | пять лобов | пять лбов |
Five hundred and seventy-nine words were then inflected by hand, twice and independently. Only forms both passes agreed on were kept.
| the word | the “small” form | what it actually means | printed |
|---|---|---|---|
| ворона crow | воронка | a funnel | no |
| корона crown | коронка | a dental crown | no |
| пила saw | пилочка | a nail file | no |
Four hundred and fifty words went through the same double pass; they agreed on ninety-five per cent. Every disagreement was thrown away, not resolved. Three hundred and six forms survived; two hundred and sixty-nine were blocked.
In the maze the child is not reading a word — the child looks at a drawing and says its name out loud. Show a market stall and hear “a shop”, and the sheet has missed its sound. That is why the drawings are our own: 979 objects, each made for the word it has to force.

A speech therapist wrote from her phone, with a screenshot: the button offered a vowel the sheet never printed. On a soft target it showed “А” while the sheet printed “РЯ”; on the hissing sounds it showed “Ы” while the sheet printed “ЖИ”. The button and the printer were working out the syllable in two different places in the code. They now call the same function. This is the first correction that came from someone who is not us.
The row that picks the material used to name genres: sheet, track, maze, stories. A therapist read that row and asked why there was only one option per sound — the steps were there, but under our own words. The row is now named the way she named it herself: sound, syllable, word, phrase, text. The genre stands under the step in small type.
The tool opened as a wizard: pick a sound, pick a material, then see a sheet. Twenty-nine other worksheet generators were opened by hand to check whether the field works that way. Two of them are wizards, and both insert the step in order to charge for it. The screen came off. The sheet now arrives assembled and the settings stand beside it.
A word gets onto a sheet because it contains the sound being practised. But the child never reads that word. The child looks at the drawing and says out loud whatever they see. That spoken word is the exercise. So the drawing has to force one exact word. Three of mine did not. A drawn figure 10 is called “десять”, not the “десятка” it was picked for. A newspaper is called “газета”, not “газетка”. A cinema hall is called “кино” or “кинотеатр”, not “кинозал”. The words a child actually says have no target sound in them, so those three sheets were practising nothing. I dropped the three words and kept the drawings. The drawings were fine; the mistake was in choosing the word.

Both were listed as working features. Neither could be built for almost any sheet: the rule they stood on had been switched off two days earlier, and the table replacing it covered twenty-three words out of seventeen hundred. They were counted as existing without existing.
A practice track for one voiced consonant printed syllables that come out as its voiceless twin when read aloud. The sheet was training the opposite sound. Two more materials had the same class of fault. All three came off the paper the day it was measured. What a letter looks like and what a mouth does with it are different facts, and only the second is allowed to decide anything.
Navigation rested on the idea that one session equals one step of difficulty. Ten real lesson plans were coded into a dataset of thirty-three task names, and not one worked that way. A therapist works from how far this child has come with this sound, and builds a run-up to it. The idea was dropped; the build, tested against the same dataset, held.
A speech therapist described the format she needed. What went into the code was my summary of her words, not the words. A week later the two were compared: the format in the code was not hers. Her words now live untouched in their own file, and any reading of them sits beside them, never on top.