Skip to content

Gemini Display Kit

Three commands ship a Gemini-powered game on Meta Ray-Ban Display.

Core trick

A local bridge server holds the Gemini key and relays calls to the glasses' web app over SSE through a tunnel.

Tags

Description

Three commands ship a Gemini-powered game on Meta Ray-Ban Display. Meta's smart-glasses Web App surface just opened up. It's a 600×600 HUD driven by Neural Band swipes — powerful, but it can't hold an API key, open a camera, or call Gemini directly. Every developer trying to build something good on it has to reinvent the same stack: a bridge server, an SSE pipe, a Cloudflare tunnel, an install QR, and wrappers for every Gemini surface. Gemini Display Kit packages that stack as a CLI + SDK. npx gdk create my-game --template adventure && gdk dev boots the bridge, mints the install QR, and the game is on the lenses in 90 seconds. The framework treats Gemini Managed Agents as the creative spine, not a chat box. The repo ships real captured code_execution_call traces in-tree at examples/prompt-arena/data/traces/m_emberton.json — a managed agent that wrote Python and ran it in a remote Linux sandbox to tune a monster's battle strategy. Scrollable proof of server-side code execution, persisted state, and structured output. That's the managed-agents prize claim, committed to git. Two original games ship as live demos: OMNI-ODYSSEY is a generated illustrated adventure. Gemini Flash narrates each beat with memory across choices; Nano Banana paints every scene on demand; Veo opens it with a cinematic. The audience plays too — they scan a QR for /conjure, describe a monster in plain English, Nano Banana paints it, and it appears in the live on-stage story as an encounter their character must face. Pure generation; vision input never used. PulseBlade360 is an original 360° wearable rhythm game. Gemini Flash designs the level structure as JSON, Lyria scores the backing track, a managed agent reviews the level for balance. The player turns and swipes as targets enter the hit zone. Not Beat Saber; not an image analyzer. Built 100% during the hackathon (2026-05-23). Every commit timestamp is within event hours; PROVENANCE.md is the file-by-file ledger. The only non-original code is @google/genai and qrcode npm deps. Google APIs used: Gemini 3.5 Flash (narration + structured JSON), Gemini Managed Agents via the Interactions API with code_execution_call and persistent threads, Nano Banana (gemini-3.1-flash-image-preview) image generation, Lyria 3 music generation, Veo image-to-video for cinematics, Gemini TTS, and the @google/genai JavaScript SDK.
sidkandan/GeminiDisplayKit★ 00 forksJavaScriptMITCreated May 23, 2026 · last push May 24, 2026

README excerpt

# Gemini Display Kit

**A Gemini-powered SDK + CLI for building games on Meta Ray-Ban Display.**

Ship a smart-glasses game in minutes — one command scaffolds a 600×600 HUD, a Gemini bridge with **managed agents / Nano Banana / Lyria / Veo / Flash multimodal** wired in, a Cloudflare tunnel, and the `fb-viewapp://` install QR your phone needs to load it on the glasses.

> **Built live at the Google I/O Hackathon — Cerebral Valley, 2026-05-23.** 100% new work, written during the event. Three working games included as examples. See [`PROVENANCE.md`](PROVENANCE.md) for the file-by-file ledger.

**📺 1-minute demo video:** https://youtube.com/shorts/6Gl1k9jtep4

---

## 60-second pitch

Meta Ray-Ban Display just opened up. The Web Apps surface is HTML/CSS/JS in a 600×600 viewport, driven by D-pad/Neural Band keys, with no camera/mic on the page. To build anything good on it you have to assemble: a bridge server that holds your Gemini key, an SSE pattern that pushes results to the glasses, a deep-link install flow, a way to mint cinematic clips with Veo without blocking the loop, a way to use managed agents as game directors — and a Cloudflare tunnel because the glasses need public HTTPS.

That stack took us a day of plumbing. **Gemini Display Kit is that stack, packaged.** Three commands take you from `npx gdk create` to scanning a QR with your phone and seeing your game on the lenses.

```bash
npx gdk create my-game --template adventure
cd my-game
gdk dev           # localhost + c

Team