A choose-your-own-adventure gamebook

Your story, paged by Claude.

Hand it a topic. Each page arrives written and illustrated as you turn it -- two or three paths always waiting at the bottom.

How it works

Read it. Hear it. See it breathe.

01

Pick a topic

A lighthouse keeper in 1912. A cartographer who finds a map they drew in a dream. Anything you can phrase in a sentence.

02

Turn the page

Claude writes 150-250 words of second-person present tense. FLUX paints a matching illustration. A depth model turns it into a subtle 3D scene that pans as you read.

03

Hear it aloud

One click and a narrator reads the page in your ear. Neural Azure voice, auto-generated while the page loads -- no waiting at the click.

04

Choose your path

Two or three distinct choices at the foot of each page. Click one; the next page is written around your decision. Share the link when you're done.

Under the hood

Written by Claude.
Painted by FLUX.

Narrative

Claude Haiku 4.5 generates every page as a structured tool call -- a narrative, an image prompt, 2-3 divergent choices, and a running summary that becomes the next page's memory. Prompted for hooks, stakes, dilemmic choices, and depth-friendly composition.

Art

FLUX.1-schnell renders the illustration. A single style descriptor, fixed at story start, keeps every page looking like it came from the same book. fal.ai fills in if Together rate-limits.

Narration

Microsoft Edge's Azure Neural voices, called through a Python sidecar and cached per page as MP3. First play pays the synthesis cost; every replay is a static file.

Depth & parallax

Depth-Anything-V2 runs on CPU in a second sidecar, producing a per-pixel depth map. A three.js shader displaces a plane mesh by that depth; a virtual camera orbits it gently, and closer pixels slide further than the background. Auto-tuned per image.

Safety

Topic blocklist before generation, an explicit PG-13 content policy in the system prompt, and an image-prompt validator before anything reaches the painters.

Architecture

Go hexagonal backend with Python sidecars for TTS and depth, on Oracle Cloud ARM. Next.js static export on Cloudflare Pages. SQLite for story + user persistence, Google OAuth for sign-in. Each provider is one adapter file behind a port.