(Two wells glow. Somewhere backstage, a dragon is clearing his throat.)
Act I · Play it
Tonight's cast
Sparky and Tony are already in the wells, so the big button works right away. Tap figures or tokens to change the cast, up to three. At the fork, press red or blue, or drop a token into a free well. Then press the big button again with the same figures and listen to how the story starts.
Sparky and Tony are on the stand. Press the big button.
The props table
Figures are the cast. Tokens are places and things: put one in before the story to choose where it can go, or save it for the fork.
…or drop a token into the free well.
- STANDWells 1 and 2 read two figures: Sparky the dragon and Tony the firefighter. Waiting for the big button.
Character cards
What the Gateway remembers about each figure. The model suggests new facts; the code decides which ones get saved, two per story at most.
Act II · The wow moment
The dragon remembers
Every figure has a character card on the Gateway, the small server that runs on my Mac. The card holds a name, a few traits and a list of things that happened to that figure in earlier stories. When my 6-year-old daughter puts the dragon on the stand, the narrator's first sentence already knows him. He learned something last week, and tonight's story starts there.
She also steers the whole thing with her hands. She picks the cast by putting figures in the wells and picks the ending by pressing a colored button. There is nothing to read, nothing to say out loud and no screen to stare at.
This scene is from the original design notes. The narrator's lines are translated from Czech, and the dragon and the firefighter got English names.
An evening, in five cues
My 6-year-old daughter stands the dragon and the firefighter in two wells. Each well lights up in its figure's color.
She presses the big button. The LED ring circles slowly. Two or three seconds later:
NarratorSince last time, Sparky the dragon isn't afraid of the dark anymore. But this morning he found out that the fire in his mouth had gone out…
About a minute in, the story stops.
NarratorShould Sparky ask Tony the firefighter for help, or look for fire in the volcano?
The red and blue buttons light up. She presses red. She could also have dropped the volcano token into the third well. The story runs to its end, three to five minutes in all.
Narrator…and ever since, Tony carries matches for dragons in his pocket.
Backstage, the Gateway saves one fact to the firefighter's card: “Tony carries matches for dragons.” The next story picks it up.
Act III · Replay value
Why a tenth time
- The figures keep a diary. Each story can add up to two facts to a figure's card, and the next story starts from them. After a month of bedtimes the dragon has a biography, and your kid will correct you on the details.
- Your kid casts the show. Who shows up and where the story can go is decided by moving plastic around, so tonight's cast is rarely last night's.
- Choices leave marks. Red or blue changes the ending and also what gets remembered, so a choice from Tuesday shows up again next week.
- A new character is a print job. The electronics live in the stand once. A new figure costs a few grams of filament and a 12 CZK NFC sticker sealed inside.
- It works when the Wi-Fi doesn't. Ten stories per figure wait on the microSD card, refreshed every night.
The heart of it
What's new thanks to AI
Toniebox plays a fixed recording for each figure. Kids love it, and by the thirtieth listen the whole family can recite it. Tinker Tales, a research project, already made up stories from NFC figures, but it needed a phone and a microphone. Story Stand has no screen and no microphone, and every figure keeps its own memory, so its life story grows over weeks.
Without a language model, someone would have to write a story for every possible cast in advance. Six figures and six tokens already make 90 different casts of two figures plus a token, and none of those stories would know what happened last Tuesday.
That payoff happens in the demo too, if you put the dragon and the firefighter on the stand twice and press red both times.
- A story for exactly who is standing there. Any combination, including the knight you printed this afternoon.
- Memory with a gatekeeper. The model reads each figure's card and builds on it. The code decides what gets written back.
- Forks without waiting. The model writes both endings before the fork comes, so a button press plays instantly and going back is free.
- Prompts built by hand. Tokens are pieces of the prompt. A 4-year-old who can't read builds one by putting a volcano next to a dragon.
Act IV · The workshop
How it's built
Printed parts
- Figures in 3–5 colors on the MMU3. The print pauses at a set layer, an NTAG213 sticker goes in, and the next 1–2 mm of plastic seals it. No magnets anywhere.
- The stand with three wells. Under each well sits a reader and a light guide ring in translucent PETG, so the well glows in its figure's color with no LED in sight.
- A sound box for the speaker, padded with cotton wadding. I drew it as the arch at the back of the stand.
- Tokens for places and things: 30 mm discs with the icon printed in color.
- An electronics case that closes with screws into M3 heat-set inserts.
Time: a weekend for the first playable prototype with one reader, about a week more for the figures and all three wells.
Parts list
| Part | Qty | CZK |
|---|---|---|
| Output core, no microphone: ESP32-S3, MAX98357 I2S amp, 40 mm speaker, microSD, big button with LED ring breakdown est. | 1 | ~730 |
| RC-522 RFID reader, 13.56 MHz, shared SPI bus, own CS pin each | 3 | ~165 |
| NFC sticker NTAG213, 25 mm (12 CZK each) | 20 | 240 |
| WS2812 LEDs under the wells, cut from a ring or strip est. | 3 | ~60 |
| Arcade buttons, red and blue est. | 2 | ~80 |
| USB-C 5 V supply, wires, M3 inserts, screws est. | 1 | ~125 |
| Total, plus filament | ~1,400 CZK about €55 | |
Shop prices from GME and LaskaKit on Sep 24, 2026. The design notes estimate about 0.5 CZK per story with a cloud voice. Here the voice is Piper on the Mac, which costs nothing, so a story costs only the model fee.
How the pieces talk
Who decides what
The code (ESP32 + Gateway) holds state and rules
- Which figures and tokens are on the stand, from the reader UIDs
- What is on each character card, and what gets written into it
- Story length, the parent's banned topics, at most 2 new facts per story
- Which button was pressed and which prepared branch plays
- When to give up on the network and play from the microSD card
The model (Claude Haiku) only writes
- The paragraphs of the story
- The fork: one red option, one blue option
- Up to two suggested new facts, which the code checks before saving
{
"paragraphs": ["Since last time, Sparky…", "…"],
"choice": {
"red": "Ask Tony for help",
"blue": "Look for fire in the volcano"
},
"new_facts": ["Tony carries matches for dragons"]
}
Piper on the Mac reads the story sentence by sentence, so the first line plays about 2–4 seconds after the button press.
Building blocks
Act V · Safety and offline
Nothing your child says leaves the room
- No microphone. The child steers with figures, tokens and buttons. Nothing a child says is recorded, so nothing can be sent anywhere.
- Content comes only from the pieces and the cards. A parent keeps a list of banned topics; the code checks every story against it and against a length limit before it plays.
- Keys stay home. The API keys live on the Mac, never inside the toy.
- A local voice. The voice is Piper, running locally on the Mac. A cloud voice is possible only if its terms allow use with children, which is not checked yet.
- Hardware for small hands. NFC tags sealed inside the prints, no magnets to swallow, electronics in a case screwed shut with M3 inserts, USB-C 5 V power and no battery.
When the Wi-Fi is down
The microSD card holds 10 pre-generated stories for each figure. The Mac refreshes them overnight, and a parent can read them before they go on the card. If the Gateway doesn't answer, the stand plays from the card. You can try it in the demo above: untick the Wi-Fi box.
Offline stories don't add facts to the cards, because the model never ran. My call, since it keeps the memory honest.
Act VI · Rehearsals
From a weekend prototype to the full stand
- Proto · a weekendOne well, one story. One RC-522, one figure, the big button. The Gateway asks the model and the speaker reads the story.
- About a weekThree wells and a cast. Three readers on one SPI bus, PETG light guides and the first figures and tokens off the MMU3.
- NextForks. Red and blue buttons, tokens as choices, both branches written ahead.
- NextMemory. Character cards with facts, the two-facts rule and the parent's topic list.
- Full versionOffline and finished. The nightly microSD batch with parent review, the padded sound box and the screwed case.
The first two steps and their times come from the design notes. The order of the last three is my estimate.
Status: a round 1 concept. Nothing has been printed, wired or tested. Later rounds took the figure memory, and the idea of one character living across several toys, into the Hatchery, a creature-breeding idea from the same batch that didn't make this shortlist.