Live Caster – Real-Time Screen Narrator
Born at the Google DeepMind × Cerebral Valley Gemini Hackathon as a live esports commentator, where it placed 3rd and won $20,000 in Gemini credits. Share any window and a single Gemini Live session watches it and speaks: native audio straight from the model, no separate TTS step. It has since been rebuilt as an accessibility tool for blind and low-vision users and taken to a public production deployment on Cloud Run. Screen readers announce the element under the cursor; Live Caster describes the screen as a whole and says which part matters now. Talk over it at any time and it stops mid-word, answers, then resumes. I owned the capture and streaming pipeline at the hackathon and built the production version.

Project Features
Measured Latency
0.58–1.09 seconds to first spoken word on consecutive frames. The UI shows time-to-first-word for every line, so real-time is a number, not an adjective.
True Barge-In
Speak and the narrator stops mid-sentence via Gemini's voice-activity detection, answers, then picks the story back up. Both sides appear as live captions.
Frame Change Detection
Frames are captured every two seconds but diffed on a downscaled grayscale grid. An unchanged screen never hits the API, so there is no cost and no narrating a static board.
Fully Keyboard-Operable
Space to start and stop, M to mute, D to describe the screen now, R to repeat, plus quiet mode, slow speech, session history, and self-healing reconnects.
Project Info
12/2025 – Present
Streaming & Latency Pipeline
Team of 3 at the hackathon · solo since
3rd Place · Live in Production
Technologies Used
- • gemini-live-2.5-flash-native-audio on Vertex AI
- • FastAPI bridge: JPEG frames + 16 kHz PCM in, 24 kHz PCM + transcripts out
- • WebSocket bidirectional streaming
- • Client-side frame diffing and 1024px downscaling
- • Google Search grounding tool
- • Session resumption and idle auto-end
- • Demo mode against a synthetic animated screen
Read the Write-up
Project Gallery




Interested in This Project?
I'm always excited to discuss my projects and share insights about the development process. Feel free to reach out if you'd like to know more!