Skip to content

Color Commentary (the only way Jets fans make it into the Superbowl)

We built this for judges to keep open while reviewing submissions — real-time commentary on your reactions.

Core trick

Samples webcam frames every 3 seconds into Gemini Flash, which returns persona-styled commentary and engagement scores for each sample.

Tags

Description

We built this for judges to keep open while reviewing submissions — real-time commentary on your reactions. Color Commentary gives every moment the drama it doesn't deserve. Point a webcam at anyone and Gemini 3 Flash delivers live sports commentary. Leaning in? Engagement. Phone check? Turnover. Crossed arms? Skepticism spiked. 5 commentator personalities: ESPN: Classic professional broadcast voice Eagles Fan: Bleeds kelly green, yells "GO BIRDS" Jets Fan: Expects everything to fall apart (fair) Ted Lasso: Relentlessly positive, brought biscuits AFC Richmond: British football, "absolute scenes" vibes Auto-detects name tags, tracks engagement/skepticism with live stats, logs events, and triggers crowd sounds when things get dramatic. The Super Bowl broadcast for people who'll never see one. Looking at you, Jets fans.
davegoldblatt/color-commentary★ 10 forksTypeScriptCreated Jan 31, 2026 · last push Feb 1, 2026

README excerpt

# Color Commentary

Real-time AI sports broadcast that treats everyday moments like Game 7 of the Finals. Point a webcam at anyone and get live ESPN-style commentary, engagement meters, and play-by-play logging — powered by Gemini.

**Built at the Gemini 3 Super Hack (January 2026)**

## How It Works

1. Click **START BROADCAST** to activate your webcam
2. Frames are captured and sent to Gemini 2.0 Flash every 3 seconds
3. The AI analyzes what it sees and generates sports-style commentary
4. Commentary types out over the video feed with a broadcast overlay
5. Engagement/skepticism meters and play-by-play log update in real time

## Architecture

```
Browser                     Next.js Server              Gemini API
──────                     ──────────────              ──────────

Webcam → Canvas (JPEG) ──POST /api/analyze──▶ Proxy to Gemini 2.0 Flash
                                               (systemInstruction + image)
UI ◀── JSON response ◀──────────────────────── Structured JSON output
  • Commentary overlay                           (responseMimeType)
  • Engagement meter
  • Skepticism meter
  • Momentum indicator
  • Play-by-play log
```

- **Polling architecture** — simple, reliable, no WebSocket complexity
- **Server-side proxy** — API key stays on the server, never exposed to the browser
- **`responseMimeType: "application/json"`** — forces structured output from Gemini

## Stack

- **Next.js 15** (App Router) on Vercel
- **Gemini 2.0 Flash** via REST API (`gene

Team