Monaco demo film — storyboard¶
One film, about three minutes, cut from takes recorded on the simulator with three real accounts and fake money (DEMO_MODE=1). It tells one story: three friends pool money, vote on a stock, watch it fill, and take profit. Every feature appears because the story needs it, not as a tour.
Two masters: a 9:16 vertical for social, and a 16:9 for the site with the phone centred on paper and the caption beside it. Same clips, same timing.
Cast¶
| Account | Phone (fixed OTP) | Name in the film | Face |
|---|---|---|---|
| Alfred | +1 555 555 7177 / 465354 | Maya | cat (the animal her id hashes to) |
| Bartholomez | +1 555 555 9638 / 648588 | Jordan | rabbit (same) |
| Cayman | +1 555 555 8215 / 115543 | Priya | penguin (picked in the face sheet on Profile, off camera) |
Names are set once in onboarding. A member without a photo wears the animal their id hashes to, and the face sheet on Profile lets them pick another or a photo; the film does not show the sheet, it is something to find. Everyone starts with $1,000 (demo mode).
Beats¶
One take per row, shot in this order because each needs the state the one before leaves behind. Captions are one short line on the paper; a blank one lets the screen speak. The cut (segments and speed per beat) lives in scripts/demo/compose.sh.
| # | Take | Account | Caption | On screen |
|---|---|---|---|---|
| 0 | intro card | The hedge fund with your friends. | Icon, wordmark, the app's tagline | |
| 1 | login |
Maya | Sign in | Number, code, Home |
| 2 | onboarding |
Maya | Create your profile | Name typed, Continue |
| 3 | start-cabal |
Maya | Start a cabal / Set the rules | Name "Sunday Investors", who joins, who votes, what passes, Create |
| 4 | invite-join |
Maya | Invite your friends with a code | Cabal details, Copy code |
| 5 | join-jordan |
Jordan | A paste and they're in! | Join with an invite code, paste, the cabal appears |
| 6 | fund |
Jordan | Fund the pot | Add money, $500, the pot reads $500 |
| 7 | join-priya |
Priya | Anyone with the code can join | Same join, three faces in the hero |
| 8 | fund-priya |
Priya | Everyone owns a slice | $300 in, the pot reads $800, her slice |
| 9 | fund-maya |
Maya | $200 in, the pot reads $1,000 | |
| 10 | stocks |
Jordan | Browse real stocks | Stocks tab, Alphabet, scrub, 1M, 1Y, stats |
| 11 | propose |
Jordan | Propose a buy | $250, "Super bullish. This stock will only keep growing.", Review, Send |
| 12 | vote-priya |
Priya | Everyone votes | Needs your vote, Yes, 1 of 3 |
| 13 | vote-maya |
Maya | Majority wins, the cabal buys | Yes, passes, the tracker reaches Done, Bought |
| 14 | chat-jordan |
Jordan | Talk it over | "In. Told you" |
| 15 | chat-maya |
Maya | "We own Google now" | |
| 16 | pre-ipo |
Jordan | Pre-IPO too | Pre-IPO section, SpaceX, the reference price and premium, the issuers |
| 17 | bot |
Maya | Add a trading bot | Propose, Add a trading bot, $200, "Scout", Send |
| 18 | vote-bot |
Jordan | Yes, Passed | |
| 19 | bot-key |
Jordan | Connect it to ClawPump | The bot's screen, the key card, Copy connect instructions |
| 20 | bot-activity |
Jordan | Watch it trade | Activity: Scout bought $40 of Nvidia (scripts/demo/agent-intent.sh buy NVDAx 40) |
| 21 | profit |
Maya | Cash out any time | Cash out, 25%, the pot and slice shrink, the balance grows |
| 22 | board-outro |
Maya | See who's up | Cabals tab, Home top investors with the three faces |
| 23 | outro card | trymonaco.xyz |
Rules for every clip¶
- Status bar at 9:41, full battery and bars (
scripts/demo/record-clip.shsets it). Light mode. Default text size. - The app is launched fresh for each clip with
MONACO_API_BASE_URLpointing at the demo backend, so nothing from a previous take bleeds in. Sign-in persists between launches on the same simulator; the account switch is a sign-out. - No typing errors on camera: names and reasons are pasted from the clip script, not typed by hand.
- Leave a second of stillness at the start and end of every clip; the cut needs it.
- Never show a real address as the point of a shot. The deposit address is fine in passing.
- If a request fails on camera, stop and re-record; the film never shows an error state.
Order of recording¶
Record in story order, because later takes depend on earlier state (the cabal exists, the pot is funded, the proposal passed). scripts/demo/README.md has the setup and the commands.
Composition¶
scripts/demo/compose.sh assembles the film:
- Intro and outro cards are the app's icon and the brand type on paper, faded in and out.
- Each beat is a few segments of its take, played a little faster than life, with its caption faded in and out. Vertical: the phone on an ink bezel with the caption under it. Site: the phone at the right, the caption beside it.
- Joins are 300ms cross-dissolves.
- Music: none is bundled; a file at
docs/demo/music.m4ais mixed in when present.