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