Fairground attractionToy Workshop · Concept · round 1

Fairy-Tale Barrel Organ

Crank a fairy tale out of a painted box. Fast for cheerful, slow for spooky, and backward to rewind the story to the last fork and send it the other way.

The Fairy-Tale Barrel Organ: a red and gold printed cabinet with a brass horn, a crank on the side, a cylinder dropping into a slot on top, and a strip of printed paper curling out of the horn. A cutaway in the front shows the speaker, thermal printer and ESP32 board inside. 1 2 3 4 5 6 7
  1. 1Horn: the sound box for the speaker, and the paper comes out of it
  2. 2Tear-off bar (PETG) at the horn's lip
  3. 3Cylinder slot, NFC reader (RC-522) underneath
  4. 4Crank, covered 1:3 gearing, AS5600 angle sensor
  5. 5CSN-A2 thermal printer, 58 mm paper
  6. 6ESP32-S3, MAX98357 amp, 40 mm speaker
  7. 79 V / 2 A in, step-down for the ESP32
  • AdmissionAges 4–10
  • Electronics~2,010 CZK (about €80)
  • StatusAn idea. Nothing built yet

Your kid drops a cylinder into the slot and turns the crank. The tale comes out a few words at a time, at whatever pace their hand sets. A thermal printer inside prints a picture panel each time the story gets past a fork, so the strip of paper curling out of the horn ends up as a map of the path the story took, rewinds included.

The cabinet, horn, crank and cylinders come off a Prusa MK4S with the MMU3, in red, gold and cream.

Turn the crank below ↓
No. 1

Turn the crank

Grab the wooden handle and drag it around in circles, with a mouse or a finger. Every third of a turn plays the next phrase. Crank fast and the words come out gold and bouncy, crank slowly and they creep in dark. When the bell rings, the story has hit a fork: let it run a phrase or two, then crank backward.

Cylinder in the slot
Spookiness cap (in code)
Sound (off until you click)

The cylinder is in. Turn the crank.

Little Red Riding Hoodready
Tempo0 °/s
Recording×1.0
Tune—
Next paragraph—
● told◆ fork (bell)○ written only↩ rewound
The scroll
On the wall
Nothing yet. Finish a tale and tear it off.

The three tales here are hand-written stand-ins with two forks each. In the toy, Claude writes the whole tree in advance, every phrase exists as audio at three speeds, and the pictures come from the parent-approved outline library further down this page. The two monkey buttons turn the crank for you, slow or fast, if you would rather watch than drag.

No. 2

The wow moment

My 6-year-old daughter is cranking away, and a strip of paper with a wolf on it slides out of the horn. In the story, the wolf is about to knock on Grandma's door. She does not approve of this at all, so she cranks backward.

The narrator slows down: Wait, wait… let's go back to the path. A little ↩ prints on the paper, and under it: …and the wolf changed his mind and went blueberry picking instead.

She didn't press a button or ask anyone. She turned the handle the other way, and the story listened.

What the organ said that evening

cranks fast“The sun was shining, the birds were singing, and behind a tree… something moved!” fork ♪

keeps going“It was the wolf! He skipped ahead to Grandma's cottage and lifted his paw to knock…”

cranks backward“Wait, wait… let's go back to the path.” (↩ prints)

cranks on“…and the wolf changed his mind and went blueberry picking instead.”

faster again“Meanwhile Grandma was baking a bundt cake as big as a cartwheel.”

The scroll from that evening. The wolf-at-the-door branch never got printed, because the story never got past it.

No. 3

How it plays

  1. Drop in a cylinder

    Each cylinder is a printed token with an NFC tag inside. It picks the genre, or casts a creature from the Hatchery as the hero. The Hatchery is a creature-breeding idea from the same batch that didn't make this shortlist. Hold the button and add a wish out loud if you like: "and the dragon is afraid of mice".

  2. Crank

    The tale plays in phrases of two to five words, one for each stretch of a turn. Stop cranking and the current phrase still plays to the end, then the narrator waits for you.

  3. Speed sets the mood

    Fast cranking picks the quick, cheerful recording of each phrase and a major-key tune. Slow cranking picks the hushed recording and a minor key. The average tempo over a paragraph decides whether the next one gets written cheerful or spooky.

  4. A bell marks a fork

    Crank backward after a fork and the story rewinds to it, then carries on down the other branch. That branch was written before you got there, so nothing has to load.

  5. Paper only after a fork

    The printer prints a panel (a picture from the outline library plus a sentence) once the story is past a fork. A branch you rewound never reaches the paper. You only see a small ↩ where you turned back.

  6. Tear it off

    At the end, the printer adds a small map of the forks you took. Tear the scroll off the bar, color it in, stick it on the wall.

No. 4

What AI makes new

A real barrel organ plays the same eight tunes forever, and a story box plays back what someone recorded. This one gets a new tale for every cylinder, written around your kid's own hero and wish, and shaped by how fast their hand moves.

The story is a tree, written ahead

Claude writes the whole tale before the first crank: the main branch, plus an alternative at every fork. The Gateway (the little server on my Mac) turns every phrase into audio. So when your kid cranks backward, the other branch is already sitting in the organ's memory. No spinner, no "let me think about that".

The mood comes from the wrist

After each paragraph, the organ tells the Gateway how fast it was cranked. The next paragraph comes back cheerier or spookier to match. A 4-year-old who can't read steers the tone of a story with nothing but the speed of a handle, and code keeps the spooky end capped for their age.

Pictures only from a library I checked

Nothing on the paper is generated as an image. I go through a library of line drawings once and approve them. For each panel, Claude picks outline IDs from that list, code throws away any ID that isn't on it, and the printer draws the rest. There is no way for a surprise picture to show up.

OUTLINE LIBRARY · approved by a parent26 outlines used in the demo
  • hood
    ✓ ok
  • basket
    ✓ ok
  • pine
    ✓ ok
  • tree
    ✓ ok
  • sun
    ✓ ok
  • eyes in a bush
    ✓ ok
  • wolf
    ✓ ok
  • cottage
    ✓ ok
  • berries
    ✓ ok
  • grandma
    ✓ ok
  • cake
    ✓ ok
  • candle
    ✓ ok
  • daisy
    ✓ ok
  • moon
    ✓ ok
  • two kids
    ✓ ok
  • gingerbread house
    ✓ ok
  • witch
    ✓ ok
  • heart
    ✓ ok
  • jar
    ✓ ok
  • pot
    ✓ ok
  • teacup
    ✓ ok
  • dragon
    ✓ ok
  • cat
    ✓ ok
  • sock
    ✓ ok
  • bubble
    ✓ ok
  • spark
    ✓ ok

Building blocks this toy uses:

  • A crank steers the story
  • Story as a tree with forks
  • Thermal printer as the AI's output
  • Outline library approved by a parent
  • A token as a piece of the prompt
  • Pre-generated lines for zero latency
  • NFC ID shared across toys
  • Caps and forbidden topics in code
  • Nightly offline batch
No. 5

Why a tenth time

The dare at our house, probably

“Bet you can't crank it slowly all the way to the end.”

Slow cranking turns into a test of nerve. The story gets darker the longer you hold out, and you can always speed up and let the sun back in.

  • Every cylinder has several story trees, and the tempo reshapes each paragraph, so two evenings never come out the same.
  • The kid steers with their hands. There's no menu, no screen, and nothing to read.
  • Rewinding is exploring: what would the wolf have done if she had let him knock?
  • The scrolls pile up on the wall, and each one is a map of that evening's choices, ↩ marks included.
  • Put a creature from the Hatchery idea on the cylinder, and the hero is a character your kid invented.
No. 6

How it's built

Everything you can touch is printed on a Prusa MK4S with the MMU3. The electronics are off-the-shelf modules from Czech shops.

~220 × 140 × 180 mm

Cabinet

Red, gold and cream in one print thanks to the MMU, with raised folk ornaments on the front. A cylinder slot on top.

Horn

Sound box and paper exit

The 40 mm speaker sits in its throat and the paper feeds up past it. A PETG tear-off bar sits at the lip.

Gearing 1:3

Crank

Steps the crank up 1:3 to the sensor shaft. The gears are fully covered, so no fingers get in.

Ø 40 × 20 mm

Cylinders

Genre embossed on top. An NTAG213 sticker goes in during a print pause and ends up sealed inside.

Swipe the table sideways for all columns.

PartWhat it doesCZKSource
ESP32-S3-DEVKitThe brain; plays phrases from PSRAM448catalog, platforms
AS5600 magnetic angle sensor + magnetReads the crank's angle and direction smoothly, nothing to wear out60estimate; part missing from the catalog
CSN-A2 thermal printer, 58 mmPrints the scroll928catalog #67 (restock listed for Oct 23)
RC-522 reader + NTAG213 tagReads the cylinder67catalog #30, #31
INMP441 mic + buttonThe wish, said out loud (optional)138catalog #27 + button estimated
MAX98357 amp + 40 mm speakerNarrator and organ tunes187catalog #48, #50
9 V / 2 A power supply + step-downPrinter and ESP32180estimate
(alternative) KY-040 rotary encoderCheaper than the AS5600, but it clicks 20 times per turn. Not counted.29catalog #33
Totalabout €80~2,010

“Catalog” in the Source column is my own list of parts with prices from Czech shops; the number is the row in it. Filament, thermal paper and wires not included. Use BPA-free paper, since kids will handle these scrolls a lot.

Architecture

Swipe the diagram sideways.

Architecture. The cylinder and an optional spoken wish go to the Gateway on a Mac. There, Claude writes the story tree as JSON, and code checks outline IDs, caps spookiness by age and has Piper render every phrase at three tempos. The ESP32-S3 in the organ downloads two paragraphs ahead, both branches. The crank's angle, speed and direction go to code on the ESP32, which queues phrases, picks the recording, jumps back to the last fork and prints after each fork. The average tempo of each paragraph goes back to the Gateway, and the next paragraph comes back with a matching mood. THE KID cylinder (NFC) + wish out loud, optional THE KID turns the crank AS5600: angle, speed, way GATEWAY · MAC AT HOME MODEL · CLAUDE writes the story tree as JSON: phrases, outline IDs per panel, fork = main + alternative CODE drops outline IDs not in the library clamps the mood by age, blocks topics Piper renders every phrase 3× at tempo 0.8 / 1.0 / 1.3 ORGAN · ESP32-S3 FLASH + PSRAM downloads 2 paragraphs ahead, both branches · 3 trees offline CODE angle → phrase queue speed → which recording backward → last fork past a fork → print a panel tempo per paragraph → Gateway Speaker MAX98357 narrator + organ tune Printer CSN-A2 panel after each fork ask tempo of the last paragraph goes back (dashed); the next paragraph returns cheerier or spookier

The model (Claude) writes

  • the story tree: phrases for every paragraph, a main branch and an alternative at each fork
  • a cheerful and a spooky wording, when asked for a mood
  • which outline IDs go on each panel

The code decides

  • where you are in the story and which branch plays
  • crank speed → which of the three recordings plays
  • backward crank → jump to the last fork
  • the spookiness cap for the kid's age, and forbidden topics
  • which outline IDs are allowed, and when to print
{ "id": "p2",
  "phrases": ["The pines creaked.", "The path grew dark.",
              "And behind a tree…", "something moved…"],
  "outline_ids": ["pine", "eyes", "pine"],
  "fork": { "main": "a1", "alternative": "a2" } }

Three recordings instead of a stretchy voice. Time-stretching speech live on an ESP32 sounds bad and takes real work. Three pre-rendered versions of every short phrase (tempo 0.8, 1.0 and 1.3) sound convincing and keep the firmware simple. A phrase also never stops halfway: it always plays to the end, which is much nicer to listen to.

No. 7

Safety and offline

Plays without a network

Every cylinder keeps three pre-generated story trees in flash, phrase MP3s and panel bitmaps included. If the Wi-Fi or the Mac is down, the organ plays from those. Without the microphone it still plays in full; the wish is a bonus.

New tales overnight

The Mac writes the next day's trees overnight, so I can skim them before they reach the organ. API keys stay on the Mac, never on the ESP32.

Spookiness has a ceiling

The age-based cap is enforced in code, so the model cannot raise it. Topics like health, food and safety advice never make it into a story at all. Pictures only come from the approved outline library.

Hardware

BPA-free thermal paper. Covered gearing. A cover over the print head, which gets warm. Mains power goes through an external 9 V adapter, so there's no battery inside the box. The mic only listens while the button is held.

No. 8

Roadmap

A weekend

First playable prototype. Crank, phrases and one pre-generated tale. No printer, no forks yet. Enough to see whether a crank beats a play button.

A month

Full version. The story tree, rewinding, printed panels after each fork, mood from tempo, cylinders with NFC.

Status: an idea on paper. Nothing has been printed, wired or tested. The prices come from a Czech parts catalog, and three of them are my estimates.

No. 9

How it scored

9Novelty
8Engagement
7Feasibility

"Cranking backward to rewind works as branching, printing only after a fork means the paper records the path, and the sync stays realistic thanks to phrases pre-rendered at three tempos."