Inspiration
Parents of 3–8 year olds know exactly what their kid loves and what they're going through. Made-up bedtime stories leave nothing behind, and most kids' apps hand the child a generic story to consume alone. We wanted the opposite: a book the parent makes with the child, about the dinosaur obsession or the first day of school, that comes alive in their hands. The iPhone Duo made it feel like a real book you can flip through.
What it does
The parent says or types how the story begins. Pop! plans a story path to an ending and writes page 1. Each page gets story text on the left screen and an illustration on the right that comes alive as a live animation. The parent steers with their voice ("add a friendly dragon"), and the next page is rebuilt behind the one on screen, so the page the child is looking at never changes.
On the iPhone Duo:
- Fold to turn the page; the page curl follows the hinge.
- Tilt to ~90° and the scene pops up out of the spine as layered cutouts.
- Angle the phone to talk to the story; open it flat to just read.
- Close it and the cover appears.
Saved books replay exactly as they were made: every page's recorded clip, no network, no generation.
How we built it
- iPhone Duo app: SwiftUI on iOS 27.1. The posture and hinge angle drive the page curl and pop-up; layout never depends on the angle, per Apple's guidance. The logic lives in a Swift package with ~300 unit tests.
- Story engine: OpenAI writes the story path and each page against the kid's reading level and a story bible (characters, setting, every direction so far), so characters keep one look and directions carry into later pages.
- Pictures: Gemini paints each page in one locked watercolor style. A character's first picture becomes its reference sheet for every later page, cutout and cover.
- Live animation: Reactor Orbis streams video into a WKWebView over WebRTC. A motion prompt is written from each page's own picture and text, so the animation shows only what's on the page.
- Server: Supabase Edge Functions (Deno) hold every API key, run the safety gates and rate limits, and store the pictures and clips.
Challenges we ran into
- Keeping characters consistent. Building pages ahead in parallel meant the next picture was painted before the character's reference existed. Pages are now painted in order, and each character's first picture is its reference from the moment it lands.
- Orbis drifts. From a watercolor still, Orbis rendered a photoreal fox within seconds. Every motion prompt now restates the art style, and the page's first seconds are what get recorded.
- One live session per account. Reactor allows one Orbis session at a time, so every fold has to hand the session from one page to the next without leaving any open; a leaked session bills by the minute.
- No physical Duo. Posture logic was built against a scripted hinge and tested through DeviceHub's slider, which only tracks when the Mac isn't overloaded.
Accomplishments that we're proud of
- A full book, end to end, in about four minutes: brief → eight pages of text, pictures and live animation → cover → saved and replayable.
- Kid safety that we measured. Nothing reaches the story model unchecked and nothing it writes reaches the screen unchecked: every input is moderated (a child's words get a separate real-harm check), every page and art prompt passes moderation plus a reading-level rubric, a flagged page gets one rewrite before a gentle note replaces it, and while a page is live, sampled video frames are checked. On our eval set, 0 of 36 unsafe cases got through and 1 of 47 safe pages was wrongly blocked.
- The fold and the pop-up. They're the moments that made everyone who tried it smile.
What we learned
A foldable makes a book feel like a book. And a picture book is a pipeline problem: story → picture → motion prompt → live video, each stage gated, each stage ready before the parent folds. Most of the hard work was in the hand-offs, not the models.
What's next for Pop!
Pre-animating the page behind so the video is already running when the page turns, a second Orbis session so the page on screen stays live meanwhile, more languages, and a real iPhone Duo.
Built With
- bitrig
- core-image
- gemini
- node.js
- openai
- reactor-orbis
- supabase
- swift
- typescript
Log in or sign up for Devpost to join the conversation.