Tabletop App Flythrough 桌面卡片穿梭 — Style Prompt

App screens and tools lie on a sunlit desk as printed paper cards; small pixel characters, popped up into voxel toys, carry the work from card to card, while one unbroken camera flies after them, whips between stops and finally pulls back over the whole desk. References (grammar only): one-take desktop tours in software launch films (windows laid flat as places, a small helper as the guide); macro toy photography (low warm sun, long soft shadows); pixel-art sprites (the cast's look). Never copy their characters, layouts, icons or music.

1. Essence, and what it is not

Not a screen recording (no cursor, no glowing monitor, no real app chrome or logos); not a brick or clay toy film (pixel voxels on printed paper); not an isometric infographic (perspective camera, real light); not flat motion graphics (everything has thickness and a shadow).

2. Materials & rendering

3. Colour logic

4. Type & subtitles

Voice-over and subtitles

5. Motion quality

6. Camera grammar

Move What it expresses Can serve
Macro glide with a slow orbit (close, 20–45° down) being there, small scale a character at work; one detail of an interface; a title standing on the desk
Whip from card to card (0.3–0.5 s, banking into the turn) the next step, cause → effect a process moving on; a hand-off between tools
Rise to near top-down (55–70° down) reading, one card as a whole a screen, a counter, a table; any verdict
Ride along, low behind the subject travel, momentum, pursuit a route; a delivery; a download
Pull back over the desk the whole system, scale a recap; the route so far; many stations at once
Hold with a shake impact a press, a stamp, a ring

7. Sound palette

8. Native moves

9. Pitfalls of the medium

10. Engine

In demo/ (three.js r170 + Canvas 2D). Copy the folder into the project; the engine files work as they are, the film is yours to write.

Conventions:

Build order (the demo's build.sh is the template): fonts → voice (core/tts, checked) → vo_timeline.py (writes src/vo.js, vo/timeline.json) → tools/subset.py (it reads src/*.js, so run it after the subtitles exist) → core/render/events.mjs → LIB=<library> node tools/camspeed.mjs → compose.py (also writes music/harmony.json; foley.py reads one chord per 2 s bar) → foley.py → mix.py → core/render/video.mjs → mux.sh → readcheck.mjs; the .srt from vo/timeline.json with core/render/srt.py. Outside styles/ the scripts' guess of the library root is one level off: export LIB and point compose.py at it.

Minimal start: a to-do card and a calendar card; a ticket sticker pops on beat 1, blinks, hops to the calendar on beat 3 while the camera whips after it, and drops into a day as a printed tag.

11. Variation space

The agent decides for each film: which apps or tools the cards are and how they lie on the desk, the cast (a mascot drawn as pixel art), the route, the props at each stop, the palette within §3, the tempo within §5, the language of the voice.


How our demo was made (story, shots, voice, score, build): DEMO.md. Read it after your treatment exists.