git # 🗿 reactive.rocks
Where the Lithosphere meets the LLM.
reactive.rocksis a gesture-controlled, real-time AI interface that transforms your webcam into a bridge between the physical and the digital. Built for the 2026 Antigravity Hackathon, it combines TensorFlow.js hand-tracking with the Gemini Live API to create a "Reactive Loop" where your movements shape the AI's personality.
Most AI interactions are trapped in a text box. reactive.rocks breaks that wall. By using 21-point hand-skeletal tracking, the application senses your physical presence.
- The Rock: Symbolizing stability and the "lithosphere" of our data.
- The Reaction: Real-time audio-visual feedback that evolves based on gesture-driven "system instructions."
- Gesture-Triggered Personas: Use specific hand signs (Rock, Paper, Scissors) to instantly swap Gemini's system instructions (e.g., from "Stoic Geologist" to "Reactive Puck").
- Gemini Live Integration: Low-latency, bidirectional audio for a natural conversation.
- WebGPU Acceleration: Leverages 2026 browser tech for fluid 60fps hand tracking without taxing the CPU.
- Neon-Lithic UI: A 90s-inspired aesthetic that blends organic rock textures with high-contrast digital glows.
| Component | Technology |
|---|---|
| Framework | Next.js 15.5.9 (App Router) |
| Intelligence | Gemini Live API (Flash 2.5) |
| Vision | TensorFlow.js + MediaPipe Hands |
| Deployment | Firebase App Hosting (Antigravity Pipeline) |
| Styling | Tailwind CSS 4.0 |
- Clone the repository
git clone https://github.com/your-repo/reactive-rocks.git
cd reactive-rocks
- Sync Dependencies (Crucial for Firebase Build)
npm install
- Configure Environment
Create a
.env.localfile:
NEXT_PUBLIC_GEMINI_API_KEY=your_key_here
NEXT_PUBLIC_FIREBASE_PROJECT_ID=reactive-rocks
- Run Development
npm run dev --turbopack
├── src/
│ ├── components/ # Game-UI and WebCam components
│ ├── hooks/ # use-reactive-loop.ts (The "Brain")
│ ├── lib/ # Gemini Live API client config
│ └── app/ # Next.js 15 File-based routing
├── public/ # 3D Rock models and textures
└── apphosting.yaml # Firebase Antigravity deployment config
- The "Empty Module" Ghost: Resolved the
@mediapipe/handsESM export conflict by implementing dynamic imports within the browser-sync hook. - Latency-First Design: Optimized the "Pack" phase of the Firebase pipeline to handle the heavy TensorFlow weight without timing out.
- [Your Name] - Architect of the Reactive Loop.
- Gemini (Thought Partner) - Strategy & Debugging.