Inspiration
I built this hackathon project with no electricity and no running water. At first, I didn't have an idea that truly fit the prompt "design for the world in front of you instead of designing for the glowing screen." Then my own surroundings gave me the answer: a blackout and dry taps.
How could AR glasses help with that? Well, I still haven't figured out how to solve the water problem with AR—but SPECS can definitely help when you're stuck in the dark.
The name Felicita ("happiness") came to me before the idea itself. Honestly, it's the one thing you miss the most in tough life circumstances.
What it does
Felicita is a spatial light planner for Snap SPECS that helps you figure out how to light up a dark room during a power outage without walking around holding a phone flashlight in one hand:
- Pinch & Place 3D Lamps: Pick up 4 different portable emergency light sources (
Big Blue Lamp— 400 lm,White Handle Lamp— 400 lm,Emergency Flashlight— 250 lm,LED Candle— 150 lm) using natural hand gestures and place them across the room. - Surface Hotspots & Light Zones: When you hold a lamp, target placement rings pulse on room surfaces (
TableCenter,ShelfEdge,ChairSide,FloorFront). Dropping a lamp snaps it into place and expands a radial light coverage zone. - Live Lumen & Room Size Calculator: A floating HUD tracks total lumens against residential lighting norms (40lm/m2) for
10 m²,15 m², and20 m²rooms, scaling the light radius dynamically. - Dark Corner Emergency Store: If a corner stays dark and your hands are empty, looking at the unlit corner marker lets you pinch to open a compact
30 × 20 cmcard and order an extra+400 lmbattery lantern.
How I built it
- Lens Studio 5.23.2 configured for SPECS 27 in the
Evening Roominteractive environment. - Spectacles Interaction Kit (SIK) (
Interactable,InteractableManipulation,WorldCameraFinderProvider) for pinch-and-drag hand manipulation and gaze detection. - Spectacles UI Kit (
BackPlate,FlexLayout,Button,Frame) for the world-space status HUD and the emergency store card. - Custom 3D
.glbmeshes for the 4 lamps and.wavsound effects for pickup, placement snap, and store actions. - LEAF (
Leaf.lspkg) for automated integration testing of all 5 done criteria (5/5 Passing).
Challenges I ran into
This hackathon felt like a two-stage obstacle course—and the hardest stage happened before I even wrote a single line of project code:
- Information Overload in Onboarding: The same instructions were duplicated across different pages in slightly different orders. It was easy to get lost and not know where to start. Solution: I found the walkthrough video in the Updates tab, watched it, and started building alongside it.
- Setting Up Google Antigravity IDE from Scratch: In Step 5 of the guide, there were only instructions for Claude Code, Codex, and Cursor. My daily driver IDE is Antigravity. Conceptually it was closest to Cursor, so I could only reuse the git clone command—everything else I had to reverse-engineer myself, burning tokens just to get the agent environment working before even touching my app idea. Solution: Manually wired the MCP server config JSON and ported the
ls-cladskills setup. - Lens Studio Deleting My Agent Folders: Every time Lens Studio ran, it wiped out my agent directories (
.agent,.agents). Solution: After some trial and error, I discovered that Lens Studio leaves the_agentsfolder alone. - The Forgotten MCP Connection: After all that prep, I finally built the whole experience—only to open Lens Studio and see a completely empty scene. After a while, it hit me: I had forgotten to connect the Lens Studio MCP server! I had to wire up MCP and rebuild everything all over again.
Accomplishments that I'm proud of
I'm genuinely proud that I managed to finish and submit a working SPECS project inside my daily IDE (Antigravity) despite having zero official documentation for it. Frankly, this hackathon is heavily tailored toward developers with paid subscriptions to Claude Code, Codex, or Cursor—using those out of the box saves a huge amount of setup time for the same result. Pushing through all the tooling roadblocks and getting all 5 LEAF tests passing anyway feels like a real win.
What I learned
- How Lens Studio MCP & CLAD work under the hood: Because I had to configure the MCP bridge and skill folders manually in Antigravity, I learned how the editor, scene graph, and agent tools actually talk to each other.
- Designing for Additive AR Displays: On optical see-through glasses, black is transparent—so instead of drawing dark overlays, you have to rely on high-contrast warm gold and cyan geometry against dim room surfaces.
- Automated Testing in AR: Using LEAF scenarios to automatically verify hand-tracking interactions, lumen math, and gaze triggers inside the Lens Studio Preview.
What's next for Felicita
- Multi-room blackout planning and battery runtime estimation (calculating how many hours each lamp will last at different brightness levels).
- Solving the running water problem next—though that might require more than just AR glasses!
Built With
- 3d-modeling
- ar-glasses
- augmented-reality
- clad
- git
- github
- glb
- gltf
- hand-tracking
- leaf
- lens-studio
- lens-studio-mcp
- lighting
- pinch-gesture
- sik
- snap-spectacles
- spatial-audio
- spatial-computing
- spectacles
- spectacles-interaction-kit
- spectacles-ui-kit
- typescript

Log in or sign up for Devpost to join the conversation.