<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Shikher Bharangar</title>
    <description>The latest articles on DEV Community by Shikher Bharangar (@sweets).</description>
    <link>https://dev.to/sweets</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4168468%2F70b4c974-94ab-4aa7-82ab-a9f987d6ac98.jpeg</url>
      <title>DEV Community: Shikher Bharangar</title>
      <link>https://dev.to/sweets</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sweets"/>
    <language>en</language>
    <item>
      <title>I Built a Cozy Stargazing Game That Rewards You for Looking Up</title>
      <dc:creator>Shikher Bharangar</dc:creator>
      <pubDate>Thu, 08 Oct 2026 19:28:54 +0000</pubDate>
      <link>https://dev.to/sweets/i-built-a-cozy-stargazing-game-that-rewards-you-for-looking-up-o6m</link>
      <guid>https://dev.to/sweets/i-built-a-cozy-stargazing-game-that-rewards-you-for-looking-up-o6m</guid>
      <description>&lt;h2&gt;
  
  
  This is a submission for the Hacktoberfest Open-Source AI Challenge &lt;strong&gt;Week 1: Touch Grass&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;What I Built?&lt;br&gt;
I built CELESTIAL, a cozy stargazing game about putting your phone to better use: taking it outside and looking up.&lt;br&gt;
The idea came from a simple problem. Most astronomy apps are useful, but they can feel like technical tools. I wanted to make something warmer—more like a tiny field journal and less like a dashboard.&lt;br&gt;
CELESTIAL gives the player a target to find in the night sky. They can photograph what they see, ask Gemma to help identify it, collect the object in their journal, learn a memorable fact, and dream up a science-inspired mission to explore it.&lt;br&gt;
A small original character named Mochi joins the journey. Mochi celebrates discoveries, gets confused by unclear photos, and is appropriately concerned when the player selects an “Unhinged” mission.&lt;br&gt;
The game is designed for curious beginners, families, students, and anyone who needs a reason to spend a little less time scrolling and a little more time stargazing.&lt;br&gt;
Features include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Live sky-photo analysis using Gemma&lt;/li&gt;
&lt;li&gt;A private practice mode that works without uploading photos&lt;/li&gt;
&lt;li&gt;Real-time planetary positions based on time and approximate location&lt;/li&gt;
&lt;li&gt;Thirteen collectible celestial objects&lt;/li&gt;
&lt;li&gt;A persistent field journal, ranks, XP, and achievements&lt;/li&gt;
&lt;li&gt;A playful mission builder grounded in real astronomy&lt;/li&gt;
&lt;li&gt;Offline practice after the first visit&lt;/li&gt;
&lt;li&gt;Mobile, keyboard, and reduced-motion support&lt;/li&gt;
&lt;li&gt;Original illustrations, including Mochi and every celestial object
Demo&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🌌 &lt;strong&gt;Play CELESTIAL:&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://celestial-skyquest.vercel.app" rel="noopener noreferrer"&gt;https://celestial-skyquest.vercel.app&lt;/a&gt;&lt;br&gt;
For the quickest tour:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Select Begin expedition&lt;/li&gt;
&lt;li&gt;Choose Try a practice sky&lt;/li&gt;
&lt;li&gt;Discover Jupiter&lt;/li&gt;
&lt;li&gt;Build a mission&lt;/li&gt;
&lt;li&gt;Pick a crew, purpose, and risk level&lt;/li&gt;
&lt;li&gt;Launch the mission and open your field journal
Practice mode is the most reliable way to see the entire experience. Live Gemma mode is also available for real photo analysis, but intentionally returns an uncertain result when a photograph does not contain enough visual evidence.
Code&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  💻 &lt;strong&gt;GitHub repository:&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/shikherbharangar/celestial-skyquest" rel="noopener noreferrer"&gt;https://github.com/shikherbharangar/celestial-skyquest&lt;/a&gt;&lt;br&gt;
The project is open source and includes the frontend, Gemma integration, serverless API, tests, deployment tooling, design notes, and a short demo guide.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How I Built It&lt;/strong&gt;&lt;br&gt;
CELESTIAL is built with React, TypeScript, Vite, and Framer Motion. It runs as an installable progressive web app and uses Vercel functions for its server-side AI requests.&lt;br&gt;
For live identification, the app uses the open-weight Gemma 4 26B model through Google AI Studio.&lt;br&gt;
The AI flow begins only after the player explicitly chooses Live Gemma. Before upload, the browser:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Resizes the image&lt;/li&gt;
&lt;li&gt;Re-encodes it as JPEG&lt;/li&gt;
&lt;li&gt;Removes EXIF metadata, including embedded GPS data&lt;/li&gt;
&lt;li&gt;Keeps the final payload below the server’s size limit&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The server then gives Gemma a constrained list of plausible objects. When a player has shared their approximate location, CELESTIAL calculates which Solar System objects are currently above the horizon and removes implausible candidates.&lt;br&gt;
The model is told to be conservative. A dark image, cloud, unrelated scene, or unresolved point of light should return no match. A confident discovery requires recognizable evidence, such as the Moon’s cratered surface or Saturn’s rings.&lt;br&gt;
Gemma never supplies the educational facts shown in the journal. Those come from reviewed, structured astronomy data. This prevents an otherwise convincing identification response from inventing scientific information.&lt;br&gt;
I also built a separate practice mode because a game about going outside should still be demonstrable indoors, during daylight, or with a poor connection. Practice mode is clearly labelled and never pretends to understand the uploaded image.&lt;br&gt;
The rest of the experience includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Astronomy Engine for local sky calculations&lt;/li&gt;
&lt;li&gt;Local storage for journals, achievements, and missions&lt;/li&gt;
&lt;li&gt;A service worker for offline practice&lt;/li&gt;
&lt;li&gt;Web Audio effects that remain muted until enabled&lt;/li&gt;
&lt;li&gt;Automated API, gameplay, accessibility, desktop, and 320px mobile tests
The full project currently passes 57 unit and API tests plus 28 browser tests.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Why Does Open Innovation Matter?&lt;/strong&gt;&lt;br&gt;
Open innovation mattered because I did not want CELESTIAL to be built around an invisible black box.&lt;br&gt;
Gemma gave me a model I could understand, constrain, replace, and build around thoughtfully. The app does not treat the model as an oracle. It treats it as one component in a larger system that also includes local image preparation, astronomy calculations, strict validation, curated facts, uncertainty handling, and clear communication with the player.&lt;br&gt;
That flexibility shaped the experience.&lt;br&gt;
I could decide that an unresolved bright dot was not enough evidence. I could keep scientific facts outside the model. I could make practice mode work independently. I could expose the project’s assumptions in the source code and let other developers inspect, challenge, or improve them.&lt;br&gt;
Open models also make the project portable. A future contributor could run Gemma through another compatible provider, experiment with local inference, improve the astronomy prompt, or evaluate it against a real collection of night-sky photographs.&lt;br&gt;
For an educational project, that openness matters. People should be able to see how a result was produced and where its limits are.&lt;br&gt;
My Agent Session&lt;br&gt;
I used an AI coding agent as a development partner while building CELESTIAL. It helped turn the initial game concept into a complete application, test the full progression loop, connect Gemma safely, diagnose deployment issues, and check the experience on desktop and small mobile screens.&lt;br&gt;
The most useful part was the feedback loop: build a feature, test the actual behavior, find where the experience or wording felt artificial, and revise it. That process also caught practical issues such as mobile text contrast, serverless API packaging, uncertain model responses, and accidental ambiguity between practice results and real AI suggestions.&lt;/p&gt;

&lt;p&gt;I have not included a DevRelay embed because I do not have a public session link yet.&lt;br&gt;
&lt;strong&gt;Prize Categories&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Touch Grass&lt;/li&gt;
&lt;li&gt;Open-Source AI&lt;/li&gt;
&lt;li&gt;Best Use of Gemma&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;CELESTIAL is ultimately a small invitation: take your phone outside, point it somewhere more interesting than another feed, and see what you can find.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>ai</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
