Inspiration
Our kids swipe through hundreds of short videos a day: bright, fast, forgotten in a second. Yet give a child a crayon and they don't consume a world, they create one.
We wanted the biggest screen at home to work for that crayon instead of against it: a TV app that rewards imagination, brings children back to paper, quietly teaches a second language, and gives families a calm bedtime ritual to share. Technology is part of their lives, so instead of fighting screens we tried to make one give something back.
What it does
WonderLoop TV turns a child's hand-drawn character into an illustrated, narrated bedtime story on Fire TV.
- Draw on paper. No tablet, no stylus: crayons and a sheet of paper.
- Scan the QR code on the TV with any phone camera. No app to install, any network. (No phone at hand? Pick one of four sample drawings with the remote.)
- Meet the hero. Amazon Bedrock (Nova 2 Lite) understands the drawing (name, species, colours, visible features) and the drawing is redrawn as a storybook character that keeps the child's design: same colours, same floppy ears.
- Read together. A 5-page story, written for that child's age, with five 16:9 illustrations. Amazon Polly narrates every page while film-style subtitles light up each spoken word in gold, so early readers follow along. Every story can be created in English or Spanish.
- Back to paper. The story ends with a narrated drawing challenge ("Draw a ladder to help Bruno reach the kite!"). Scanning that new drawing creates Chapter 2, where the new friend joins the hero. The loop never ends: every drawing becomes a chapter.
For families: up to three child profiles, medals that celebrate creating (not scrolling), a library of sagas and a corkboard of drawn friends, an arithmetic parental gate for grown-up settings, no ads, no tracking, no database: the drawing is deleted from server memory as soon as the TV picks it up.
How we built it
Fire TV app (Kotlin Multiplatform + Compose): a 10-foot UI designed for the remote from scratch: D-pad focus with golden halos, rails with Leanback-style focus restoration, 48 dp overscan safe zones, Compose for TV (androidx.tv Surface) for the reader and home, an exit dialog that follows Amazon's Controller Behavior Guidelines, and a cinema-mode reader that behaves like a Fire TV video player (controls fade out, OK pauses, ◀ ▶ turn pages).
QR bridge: the TV creates a short-lived session (15-minute TTL) and polls it; the phone opens a bilingual web page served by our backend that downsizes the photo to 1024 px in a canvas and uploads it. No account, no companion app.
AI pipeline on AWS:
- Amazon Bedrock · Nova 2 Lite (Converse API with forced tool use and full JSON schemas) analyses the drawing and writes the story.
- A story quality engine plans every chapter from a catalog of concrete worlds, problems and drawable challenge objects, follows a 5-step story spine, and runs an automatic quality review with one guided rewrite (clichés, length per age, language leakage, drawable challenge).
- Amazon Polly (neural voices Lucia / Ruth) narrates every page and the challenge; word speech marks are aligned to the on-screen text to drive the gold word-by-word subtitles.
- Illustrations use Gemini image generation behind an
IImageAdapterinterface (there is no GA Amazon image model with reference-image consistency for new Bedrock accounts yet); every AWS call also falls back to Gemini automatically. - Vision → portrait run in sequence to keep the character's identity; then the five illustrations and the narration run in parallel. A full story takes about 12 s on our EC2 backend (vision 1.8 s, story text 5.2 s, five illustrations 5.3 s).
Infrastructure: a Node.js/TypeScript backend in Docker on Amazon EC2 (t3.small, Elastic IP) behind Caddy with automatic HTTPS. AWS IAM instance role with a least-privilege policy (bedrock:InvokeModel + polly:SynthesizeSpeech), so no AWS keys live on the server. App key header, rate limits, image pixel caps and no persistent storage.
What we built during the hackathon
WonderLoop started as a small Gemini-only mobile prototype started on September (phone camera → story). During the submission period we built everything that makes it a Fire TV product:
- The entire Fire TV app: 10-foot UI, remote navigation, Compose for TV, profiles, library, friends, parental gate, exit dialog, onboarding, launcher icon and banner.
- The phone-to-TV QR bridge (sessions, mobile upload page, live status on the TV).
- The move of vision, story and narration to Amazon Bedrock (Nova 2 Lite) and Amazon Polly, with automatic Gemini fallback.
- The story quality engine (catalog, story spine, automatic review and rewrite) and sagas with narrated drawing challenges.
- The cinema reader with Polly speech-mark subtitles and the English/Spanish experience.
- The AWS deployment (EC2, Caddy HTTPS, IAM role), security hardening and a detailed friction log.
Challenges we ran into
- TVs have no camera. We designed a phone-to-TV bridge that needs no app and works on any network.
- Text vs. artwork on a TV. A reading panel at 10-foot sizes covered 55% of the illustration. We switched to film-style subtitles synced to Polly speech marks.
- Reliable JSON from Nova 2 Lite. Plain-text JSON broke in English (typographic quotes, fences); a permissive tool schema returned empty objects. Forced tool use with complete schemas fixed it (6/6 successful calls).
- No GA Amazon image model for a new account (Nova Canvas reached end of life), so illustrations stay on Gemini behind an interface, ready to swap.
- Compose for TV is Android-only while our UI lives in Kotlin Multiplatform
commonMain; we bridged it with thinexpect/actualprimitives. - Focus on Fire TV: focus lost after dialogs and escaping the end of rails, found only on the real device and fixed with focus memory and key guards.
Accomplishments that we're proud of
- A child goes from a crayon drawing to a narrated, illustrated story on the family TV with only seconds of waiting (about 12 s to generate a full story), without installing anything on a phone.
- Stories that read like real picture books: in our evaluation of 16 stories, concrete and drawable challenges went from 38% to 100%, and pages within the age word target from 50% to 100%.
- Word-by-word gold subtitles driven by Amazon Polly speech marks: the TV reads with the child, not for them.
- Privacy by design: no database, no ads, no analytics; the drawing is deleted from memory once the TV receives it.
What we learned
- A TV app is not a big phone app: focus, distance, overscan and the remote change every decision.
- Borrowing Fire TV's own video-player conventions (subtitles, auto-hiding controls, OK to pause) made a reading app feel native.
- Structured output from LLMs needs a contract (forced tool use + schema), not just a polite prompt.
- Small details matter to children: a hero that keeps their colours, and a happy face even when they drew a straight mouth.
What's next for WonderLoop TV
- Fire TV Appstore launch, with a free tier and an optional subscription (the billing integration is already in place, disabled in this build).
- An Amazon image model on Bedrock as soon as one with reference-image consistency is generally available, to run 100% on AWS.
- More languages for families raising multilingual children.
- Alexa voice: "Alexa, continue my story" and voice answers to the story's questions.
- Printable colouring pages of each chapter, so the story goes back to paper once more.
Built With
- amazon-bedrock
- amazon-ec2
- amazon-nova
- amazon-polly
- android
- aws-iam
- caddy
- compose-for-tv
- docker
- express.js
- fire-os
- fire-tv
- gemini
- kotlin
- node.js
- typescript
- zxing
Log in or sign up for Devpost to join the conversation.