Post-submission update (March 17)
The submission text above was written in a rush at the deadline. Here's the version I'd have written if I had more than 15 minutes.
I built Past, Live in four days from Santa Marta, Colombia. Sitting on the floor, laptop on a chair, no AC (bought a 220v unit in a 110v country). I pivoted four times -- gamified quiz, stressful roleplay, rigid script, and finally the "bag of sticks" architecture where Flash generates a bag of material and Live pulls from it freely. The breakthrough came at 3am when I found a leftover directive that said the model cannot make jokes. I flipped it. Cleopatra asked if my call was a pyramid scheme.
Since submission I've fixed a Firestore crash affecting anonymous users (undefined fields rejected by Firestore -- stripped them before write), deployed the Bolivar portrait that was missing from the frontend, and rewritten the README from scratch in first person. The architecture, prompts, and functionality are the same -- just documentation and a one-line backend fix.
What makes this different from other voice AI apps:
- Natural interruption -- VAD tuned with low start sensitivity, high end sensitivity, 500ms silence. You cut them off, they adapt.
- Characters remember you across calls via Firestore profile injection into every system prompt.
- Re-anchoring every 4 model turns -- without it, characters drift, start lecturing, forget they're on a phone call.
- 3 Gemini models collaborating -- Flash writes the personality, Image generates the visuals, Live performs. Each does what it's best at.
- The character voice lives in one file (
server/src/character-voice.ts): be the funniest person at a dinner party who happens to have lived through something insane. - Curated art direction -- crosshatch engravings inspired by USD paper money, monochrome on vibrant orange, 30% orange at focal points in scene images.
- Graceful error handling for Gemini Live's ~40% crash rate -- auto-reconnect, context replay, "Signal Lost" screen.
Content created for this hackathon:
- Blog post: https://dev.to/nqh/i-told-gemini-live-to-be-funny-it-audibly-recited-my-system-prompt-57ji
- Builder's journey: https://ngoquochuy.com (card: "I built this to prove to myself I could")
- Demo video: https://youtu.be/j6wccLHKbqk
- GDG profile: https://gdg.community.dev/u/mwn2mj/
The live version is genuinely better than the demo video. Try it: https://past-live.ngoquochuy.com
Log in or sign up for Devpost to join the conversation.