Luna: a night-sky guide that runs Gemma on your phone, checks every answer against the sky, then asks you to put the phone away A developer built Luna, a browser-based night-sky guide that runs Google's Gemma 4 E2B model on-device via WebGPU and MediaPipe LLM Inference, so it works offline with no signal. The app resolves a user's question, computes sky facts (altitude, direction, rise/set times, moon, darkness) with its own engine, has Gemma write an answer from those facts only, then runs a verifier that checks every name, direction (±45°), height and time (±10 min) before showing a "Checked against the sky" result or the engine's answer with the failure reason. The developer tested it in Bangalore, where it identified Sirius and guided them to Jupiter before prompting them to put the phone away. This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass https://dev.to/challenges/hacktoberfest-week1-2026-10-05 Check out the luna movie - https://drive.google.com/drive/folders/1HbcCDIdcOdZ0juuN7QNdmM4CX20JvgaD?usp=sharing https://drive.google.com/drive/folders/1HbcCDIdcOdZ0juuN7QNdmM4CX20JvgaD?usp=sharing Luna is a night-sky guide you set up by looking up, ask by pointing, and finish by putting your phone away. Most stargazing apps keep your face in the screen. Luna is built around the opposite: every feature exists to get you outside, looking at the real sky, for longer. Who it's for: anyone who has looked up and wondered "what is that?" , on a city rooftop or a mountain pass, with or without signal. How it gets you off the screen: the app is useless indoors on purpose. On a computer it says so up front, "Luna lives on your phone" , with a QR code to carry it over plus an honest preview for judges on laptops . On the phone, every answer ends by pointing you back at the sky. At Midnight , I took Luna onto a street in Bangalore. I held the phone up to a bright star low in the south-east and Luna named it as Sirius.It matched . I asked "Where is jupiter rigth now?" and it auto-guided me and answered and help me spot jupiter in the sky. I Always wanted that Never knew that star i saw so many times was JUPITER Then I put the phone away and just looked up for a while embracing the beauty. A night-sky guide you set up by looking up, ask by pointing, and finish by putting your phone away. Built for the Hacktoberfest 2026 Open-Source AI Challenge, Week 1: Touch Grass https://dev.to/challenges/hacktoberfest-week1-2026-10-05 . / /get , which detects the device: an Android APK plus Chrome's one-tap install , Add to Home Screen steps for iPhone, and on a computer a plain "Luna lives on your phone" screen with a QR code and an honest preview /sky installable, works offline after one visit /sky/print?lat=32.78 Luna is a phone app. It needs a compass, tilt sensors, GPS and the sky above you, so on a computer it says so up front and offers a preview sky map, Tonight, Ask with Gemma, Places with the phone-only features listed. | Feature | How it works | |---|---| | Sky Check | Setup asks you to look up. Luna draws the constellation | Luna's brain is Gemma 4 E2B Apache 2.0, the litert-community web build , running inside the browser on WebGPU through MediaPipe LLM Inference . question ─▶ resolve subject nickname → name → constellation → "that one" = where the phone points ─▶ sky engine computes facts altitude, direction, rise / peak / set, moon, darkness ─▶ Gemma writes the answer from those facts only ─▶ verifier checks every name, direction ±45° , height fists / degrees and time ±10 min ─▶ pass: "Checked against the sky" fail: engine's answer + the reason, shown openly Every answer has a How Luna answered panel showing the facts it was given, the model's raw text and any problems the verifier found. I'd rather show the seams than ask people to trust a black box in the dark. watchPosition . render.yaml : build, start, done. The free plan sleeps when idle, so the service worker serves the cached app after 3.5 seconds rather than leaving you staring at a blank screen while the server wakes up. eleven multilingual v2 and ship as MP3 files. No API key ships in the app, and they play under a mountain with zero bars. The landing page is a scroll-told story GSAP, ScrollTrigger, Lenis with procedural night art and a live sky drawn from the real catalogue for tonight. The app carries the same type and palette into a dark, red-safe UI with hand-drawn icons. Because the best skies have no signal. A closed API would make Luna useless exactly where it matters: on a mountain pass, in a desert, at a dark-sky reserve. Open weights let the model travel with you, inside the phone, and answer every question for free. Open weights also gave me control a hosted API wouldn't: And the rest of Luna is open in the same spirit: Astronomy Engine, the Hipparcos catalogue via d3-celestial, MediaPipe, Open-Meteo. All the code is on GitHub. Luna was built end to end in one long session with Claude Code: reverse-engineering the landing page's motion, building the sky engine and grounding verifier, getting Gemma 4 running on WebGPU, and shipping the Android app. The API key and personal details in it have been redacted.