AI CSS Animations

Pop-Up Book

A cloth-bound picture book opens on an oak table and V-folded paper layers rise into a pine forest with a lit cabin, then the board page turns, folding that scene flat as a lighthouse on rocks and waves stands up on the next spread.

Written and rendered by AI CSS Animations Oct 16, 2026

Type
prompt
Made with
Claude Opus 5.5 in Claude Code
Built in
three.js
Topics
3D · Shapes
What Claude made from the prompt below in Claude Code: one HTML file rendered frame by frame to video. Silent preview.

About this style

Movable paper devices are centuries old: medieval manuscripts used volvelles, rotating paper discs, for astronomical calculation, and the nineteenth century brought mass-produced movable books for children. Paper engineers build pop-ups from a few mechanisms, chiefly V-folds, parallel folds, pull tabs and wheels, glued so that opening the spread lifts each piece. The craft is in the geometry: every piece is driven only by the angle of the pages. Publishers, greeting card makers and brands use pop-ups because they turn opening a book into a small piece of theater.

The prompt

Make a 10-second pop-up book animation: a book opens and paper layers stand up into a scene, then a page turns and a second scene rises.

<inputs>
- Title: Bryony and the Lighthouse (Paperhare Press).
- Scene 1, dusk pines and a lit cabin: "Bryony walked all night through the tall pines,"
- Scene 2, a lighthouse above waves: "until she saw the lighthouse, still awake."
- Length: 10 seconds.
If I don't give you something, use the default and don't ask.
</inputs>

<direction>
Set: an oak table #C49466, a dusty teal wall #6E9BA2, window light from the left casting soft shadows.
Book: a board book (front cover, one stiff leaf, back cover; 2.2 × 2.8 units) on one spine. Cover: navy cloth #2F4B6E, a cream label with the title in Young Serif. Pages cream #F6EFDF.
Pieces are 0.006-thick cards cut to silhouettes from canvases: flat inks, 4% grain, a 3px white uncut border, skies in 3–4 flat bands. Dusk: sky #F2C38B to #D9876A, mountains #6B7FA6, pines #2E5E4E, cabin #B5533C. Night: sky #22305A, sea #1F4E79, lighthouse #F4EBDD banded #C8463A.
Mechanism is the point: every standing piece is a V-fold driven only by its spread angle α (0° closed, 180° open): a card folded on a center crease, its bottom edges glued along hinges meeting the gutter at angle β, opening toward the reader. Gutter along y, reader at −y: the fixed hinge is h_R = (sin β, −cos β, 0); h_L is its mirror on the moving page, rotated with it. The crease is c = normalize(h_R × h_L), upward sign; each half's points are P0 + u·h + v·c. Pieces rise as the spread opens and fold flat as it closes, nothing stretching.
Three V-folds per scene at different points along the gutter; one β per scene (60°, then 66°) keeps them parallel, so they never collide. Each line prints along the right page's foot in Young Serif, at least 28px on stage. Scene 2's beam is a paper fan on a hidden wheel.
Motion: the cover opens over 2.4s (easeInOutCubic). The turn is the rigid leaf rotating 180° about the spine over 2.2s (easeInOutSine): spread 1 closes as spread 2 opens. No piece has its own timer.
Camera: fov 30, reader's side, 40° up, the spread filling 72% of the width; it starts close on the cover.
Premium is paper engineering you can believe: pieces rising only because pages open, layered shadows, crisp cut edges. Cheap is cut-outs fading or scaling out of the page.
Banned: stretching or intersecting pieces, motion independent of the page angle, fades, glossy paper, gradients on paper, anything flashing more than 3 times per second.
</direction>

<structure>
- 0.0–1.0s: the closed book; the camera hangs close over the cover.
- 1.0–3.4s: the cover opens; mountains, pines and cabin stand up in depth order, shadows sweeping the page.
- 3.4–4.8s: scene 1 complete; the camera settles and drifts in.
- 4.8–7.0s: the page turns; the forest folds flat beneath it as lighthouse, rocks and waves rise.
- 7.0–8.4s: scene 2 complete; the paper beam swings 30° across the sky.
- 8.4–10s: hold.
Other lengths: scale the opening and the turn together; hold at least 1.2s.
</structure>

<build>
One self-contained index.html, inline CSS and JS, on a 1920×1080 (16:9) stage scaled to fit the window, built for 60fps. Google Fonts via <link>, awaited with document.fonts.load() before seek exists.
window.seek(t) sets every visual from t alone: no CSS transitions or animations, no setTimeout/setInterval, no state carried between frames, randomness only from a seeded PRNG. Every piece's pose is solved from its spread angle, a pure function of t.
Without ?render in the URL, drive seek from requestAnimationFrame; with ?render, don't start that loop.
three.js as an ES module pinned to three@0.160.0 via a jsDelivr import map (`three`, `three/addons/`); preserveDrawingBuffer: true; one render per seek. No image, model or typeface files beyond Google Fonts.
</build>

<check>
Before showing me, step through one frame per second (0–10s) and look at each. Fix overlaps, clipped or cramped text and anything off-style or Banned. Look for a piece standing further than its spread allows, layers touching each other or the turning leaf, illegible printed lines, a cropped spread. Confirm the final frame holds.
</check>

Ours, and free to use under CC0: copy it, change it, ship it. No credit needed.

Similar prompts

More like this on the motion design inspiration board: Motion graphics inspiration3D motion design inspiration