# 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."*