analog-town / VIDEO_SCRIPT.md
thangvip's picture
Add Creative Mode + browser TTS + multi-day timeline + emotion heatmap + 3 new towns
ed19734 verified
|
Raw
History Blame Contribute Delete
9.93 kB
# Analog Town β€” Demo Video Script (v2, with TTS / Heatmap / Timeline / Creative Mode)
**Target length:** 3 min (hard cap 3 min 30 sec)
**Tone:** Calm, slightly conspiratorial β€” like you really are operating a radio van. Don't oversell. Let the interface do the work.
**Recording tip:** Use OBS or QuickTime. Capture system audio so the static loop *and the spoken monologues* are audible. Set browser zoom to 110% so the CRT panel reads on mobile playback.
---
## Pre-Recording Checklist
- [ ] App is running and **loaded once in this browser session** β€” TTS unlocks on first click, ambient audio unlocks on first interaction. Click anywhere before recording.
- [ ] Browser window sized 1440Γ—900, zoom 110%, DevTools closed
- [ ] System volume on, **headphones recommended** so you can hear the static fade and voice ducking
- [ ] Pick the town: **Port Whisper** (best demo because the wind-farm conflict has clear sides and the heatmap is dramatic)
- [ ] Pre-write the broadcasts in a notes window β€” you'll paste them in:
- **Day 1:** *"The state energy department has approved the construction of a 40-turbine offshore wind array, 5 miles off the Port Whisper coast."*
- **Day 2:** *"The state has scheduled a public hearing at the harbor next Friday and is offering union-scale jobs in turbine maintenance."*
- **Day 3 (optional):** *"Protesters blocked the harbor entrance at dawn. Two arrested. The mayor calls for calm."*
- [ ] Pre-write the **Creative Mode concept** for the closing demo:
*"A haunted seaside lighthouse where the keeper has vanished. The village is split on whether to investigate or burn it to the ground."*
- [ ] Close all other tabs / Slack / notifications
- [ ] Mic check β€” say a sentence, play it back, then start
---
## Scene 1 β€” Hook (0:00 – 0:15)
**On screen:** Land on the app with the dial idling between stations. You can hear the static loop softly. Hold for 2 beats before speaking.
**You say:**
> "This is Analog Town. It's a shortwave radio that picks up the inside of fictional people's heads. You drop a piece of news into a town β€” and you tune the dial to hear what each resident is privately thinking about it. Listen."
**Action:** Slowly drag the frequency slider 1–2 ticks while talking. Let the static crackle change pitch. Don't land on a station yet.
---
## Scene 2 β€” Meet the Town (0:15 – 0:35)
**On screen:** Open the **TOWN** dropdown. Pause on it just long enough that the nine options are readable. Pick **Port Whisper**.
**You say:**
> "We ship nine towns, each with a built-in conflict. A coastal village debating a wind farm, a polar research station picking up a strange signal, a near-future vertical city where a municipal AI just filed for mayor. I'll load Port Whisper."
**Action:** Click **Port Whisper**. Wait for the isometric map to load with the four pixel-art character tokens placed on it. The dossier accordion shows below the map.
---
## Scene 3 β€” Day 1 Broadcast (0:35 – 1:05)
**On screen:** The broadcast field has pre-filled with the default scenario. Move to it.
**You say:**
> "Day 1. A wind farm is approved off the coast. I broadcast it into the town."
**Action:** Press **TRANSMIT**. While the progress bar runs in the status panel:
**You say (~10 seconds of cover narration):**
> "Behind the scenes, this is Qwen 2.5 7B through the Hugging Face Inference API. Each resident is processed as a typed state transition β€” not roleplay β€” so the model produces structured JSON: what the character noticed, which memory got triggered, which value got bruised, and how their emotional state shifted."
**On screen:** Simulation completes. The four sprites visibly **tint by emotion** β€” red on Captain Arthur, amber on Mayor Sarah, blue on Chloe, etc. A pulsing **πŸ“’ anomaly badge** appears on at least one sprite. A `DAY 1` pill appears in the timeline strip and a `DAY 1` badge in the corner of the map.
**You say:**
> "The map just tinted. Red means anger, amber is hope, green is trust, blue is curiosity. That badge β€” the megaphone β€” means this character's emotional state shifted by more than 60 percent on at least one axis. Big reaction. Worth tuning in to."
---
## Scene 4 β€” Tune the Dial, Hear the Voice (1:05 – 1:35)
**On screen:** Move the cursor to the frequency slider.
**You say:**
> "Now I tune the dial."
**Action:** Slowly drag the dial up toward **Captain Arthur Vance** (around 89.1 MHz). As you approach, the **signal-strength bar climbs and the static audibly fades**. Land on his station. The dossier loads. His monologue appears in the CRT panel.
**Important:** Don't read the monologue aloud yourself. **Wait.** The browser TTS will speak it in a distinct voice over the (now-quiet) static. Stay silent for the ~6 seconds it takes.
**On screen:** The πŸ”Š voice LED next to the VOICE button flashes green while the voice plays. Static ducks under the voice.
**After it finishes, you say:**
> "Different voice for every character. The static ducks under them. And under every monologue is the structured trace β€” the emotion deltas, the activated memory, the value conflict β€” so writers and game masters don't just get prose, they get a mechanical readout of *why* this character reacted this way."
**Action:** Click directly on a different sprite on the map (e.g., **Chloe Chen**, the marine biologist). The dial snaps to her frequency, the dossier swaps, her voice β€” distinctly different from Arthur's β€” speaks her monologue.
**You say (while her voice plays):**
> "Same broadcast. Different mind."
---
## Scene 5 β€” Day 2 Drift (1:35 – 2:20)
**On screen:** Move to the broadcast text box. Clear the existing content. Paste Day 2's broadcast.
**You say:**
> "Now the second day. Same town. Different beat."
**Action:** Press **TRANSMIT**. While it runs:
**You say:**
> "The agents don't reset. Their Day 1 emotional state becomes the seed for Day 2 β€” the simulator carries the drift forward. And I'm telling the model explicitly: *do not echo what they said yesterday.*"
**On screen:** Simulation completes. The map sprites **re-tint**. Watch for changes β€” Captain Arthur may shift from red to amber, Mayor Sarah may go greener. A `DAY 2` pill joins the timeline strip; the day badge updates.
**You say:**
> "Watch the map. The town just drifted."
**Action:** Tune back to Captain Arthur. His Day 2 voice comes through with clearly different prose from Day 1. Wait for the voice to finish.
**You say:**
> "Day 1 he said *they're putting iron in my ocean.* Day 2 he heard about jobs and a hearing. Listen to what's softened."
---
## Scene 6 β€” Time Travel (2:20 – 2:40)
**On screen:** Hover the timeline strip below the broadcast bar.
**You say:**
> "And I can time-travel."
**Action:** Click the **DAY 1** pill. The map snaps back to Day 1's heatmap, the day badge says DAY 1, Captain Arthur is red again. Tune back to him β€” his Day 1 voice returns.
**You say:**
> "Day 1's snapshot, intact. Click Day 2 again β€” back to the present."
**Action:** Click the **DAY 2** pill. Map returns to Day 2 state.
---
## Scene 7 β€” Creative Mode (2:40 – 3:10)
**On screen:** Open the **🎨 CREATIVE MODE** accordion above the map.
**You say:**
> "And you can design your own town. Type a concept."
**Action:** Paste into the concept field:
> *A haunted seaside lighthouse where the keeper has vanished. The village is split on whether to investigate or burn it to the ground.*
Set agent count to 4. Click **πŸͺ„ GENERATE WITH AI**.
**You say (while it generates):**
> "The same Qwen model that runs the simulator drafts a complete town: residents, frequencies, fears, hopes, relationships, even a default broadcast event. All in valid JSON. All editable."
**On screen:** Generated JSON appears in the editable field below.
**Action:** Click **πŸ’Ύ SAVE & LOAD**. The dropdown refreshes; the new town loads. The map shows the new agents.
**You say:**
> "Saved, loaded, and ready to broadcast."
---
## Scene 8 β€” Close (3:10 – 3:25)
**On screen:** Pull back to a wide shot of the full interface β€” map with the new town, dial, monologue panel, timeline strip ready to start.
**You say:**
> "Analog Town. A 7B model, a typed state machine, a radio dial, and a town that remembers. Built small, on purpose. Tune in on Hugging Face Spaces."
**Action:** Hold on the wide shot for 2 beats. Cut.
---
## Backup Lines (in case something breaks)
- **If TTS doesn't play on a sprite click:** *"On some browsers the speech engine needs a moment to wake up β€” there's a TEST button right here that confirms voice is ready."* (Click TEST button to demo voice independently.)
- **If the model is slow:** *"While that's computing β€” every state transition is one model call, four characters means four small calls. That's the trade we made: small model, tight schema, no chat."*
- **If a Day 2 monologue is too similar to Day 1:** *"Notice the model isn't being dramatic β€” that's deliberate. The system prompt tells it to favor plausible and grounded over interesting."*
- **If the static doesn't fade audibly on recording:** *"The static you can't quite hear right now is fading out because the signal strength just climbed β€” it's a client-side audio effect tied to the dial."*
---
## What NOT to Say
- Don't call it "AI characters" or "chatbots" β€” the whole point is that it isn't.
- Don't promise it predicts real people. The safety framing is part of the design.
- Don't read JSON fields out loud word-for-word β€” paraphrase.
- Don't apologize for the small model. Frame the smallness as the design choice it is.
- Don't talk over the TTS voices β€” let them play. They're the demo.
---
## One-Line Elevator Pitch (for thumbnail / caption)
> *"A shortwave radio for fictional minds. Drop news into a town. Tune the dial. Hear each resident, in their own voice, over multiple days."*