<?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: Pranit Mathane</title>
    <description>The latest articles on DEV Community by Pranit Mathane (@crytic35).</description>
    <link>https://dev.to/crytic35</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4161500%2F6960ca5d-df9f-40ba-b802-57f7de979d55.webp</url>
      <title>DEV Community: Pranit Mathane</title>
      <link>https://dev.to/crytic35</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/crytic35"/>
    <language>en</language>
    <item>
      <title>SkyQuest: An Open-Source Outdoor Astronomy Mission Platform Powered by Gemma</title>
      <dc:creator>Pranit Mathane</dc:creator>
      <pubDate>Mon, 12 Oct 2026 02:33:09 +0000</pubDate>
      <link>https://dev.to/crytic35/skyquest-an-open-source-outdoor-astronomy-mission-platform-powered-by-gemma-1hoh</link>
      <guid>https://dev.to/crytic35/skyquest-an-open-source-outdoor-astronomy-mission-platform-powered-by-gemma-1hoh</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week1-2026-10-05"&gt;Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;Most astronomy and satellite tracking software is designed to be consumed exclusively through a screen: complex orbital graphs, two-dimensional ground tracks, and dense ephemeris tables keep users tethered to their desks. &lt;/p&gt;

&lt;p&gt;I built &lt;strong&gt;SkyQuest&lt;/strong&gt; with the opposite objective: &lt;strong&gt;to bridge digital astrodynamics and the physical world by motivating people to step outdoors, look up, and visually track operational spacecraft crossing the night sky.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;SkyQuest is an outdoor astronomy mission platform integrated directly into the open-source &lt;strong&gt;&lt;a href="https://github.com/bilawalsidhu/gods-eye-view" rel="noopener noreferrer"&gt;God's Eye View&lt;/a&gt;&lt;/strong&gt; 3D geospatial Earth engine. It translates complex orbital mechanics and real-time ephemeris data into structured, actionable outdoor observing missions calibrated to an observer's exact terrestrial coordinates.&lt;/p&gt;

&lt;h3&gt;
  
  
  Core Architecture and Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Observer Horizon Calibration&lt;/strong&gt;: Instant coordinate detection via browser geolocation with graceful manual fallback and built-in worldwide urban presets.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;48-Hour Orbit Propagation&lt;/strong&gt;: Continuous forward scanning for high-interest visible spacecraft, including the International Space Station (ISS), Tiangong Space Station, Hubble Space Telescope, Envisat, Terra, Aqua, NOAA meteorological satellites, and BlueBird 1.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Astronomical Visibility and Umbral Shadow Engine&lt;/strong&gt;: A rigorous physics layer that separates geometric pass existence from visual observability. It calculates topocentric solar depression angles (civil, nautical, and astronomical twilight), observer elevation, and whether the satellite is in direct sunlight or eclipsed within Earth's umbral shadow cylinder.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Atmospheric Weather Integration&lt;/strong&gt;: Live cloud cover percentage and atmospheric visibility forecasts fetched via Open-Meteo to prevent wasted field attempts during overcast conditions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;3D Geospatial Orbital Trajectory&lt;/strong&gt;: Full 3D orbital arc visualization, sub-satellite ground paths, observer ground markers, and culmination line-of-sight vectors rendered via CesiumJS.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Night-Vision Preservation Mode&lt;/strong&gt;: A dedicated monochromatic deep-crimson interface theme (650 nm equivalent) engineered to prevent pupil constriction and preserve human rhodopsin adaptation under dark skies.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Live Acquisition-of-Signal (AOS) HUD&lt;/strong&gt;: Real-time countdown timers, cardinal azimuth compass bearings, and target elevation angles.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Amateur Astronomy Journal&lt;/strong&gt;: Local, persistent logging of field observation attempts, cloud coverage notes, visual magnitude estimates, and sighting confirmations, with instantaneous RFC-4180 CSV and JSON data export.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pedagogical AI Mission Briefings&lt;/strong&gt;: Structured field briefings combining factual astrodynamics with contextual spaceflight history generated by open-weight AI models.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Source Code Repository&lt;/strong&gt;: &lt;a href="https://github.com/Crytic35/SkyQuest" rel="noopener noreferrer"&gt;https://github.com/Crytic35/SkyQuest&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local Reproduction&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  git clone https://github.com/Crytic35/SkyQuest.git
  &lt;span class="nb"&gt;cd &lt;/span&gt;SkyQuest
  npm &lt;span class="nb"&gt;install
  &lt;/span&gt;npm run dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Workflow Overview&lt;/strong&gt;:

&lt;ol&gt;
&lt;li&gt;Launch the application and click the star flare icon in the top navigation bar (or press &lt;code&gt;Q&lt;/code&gt;) to open the SkyQuest Mission Console.&lt;/li&gt;
&lt;li&gt;Set your observer coordinates or click &lt;strong&gt;Detect GPS&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select an upcoming visible pass from the mission catalog.&lt;/li&gt;
&lt;li&gt;Engage &lt;strong&gt;Red-Light Mode&lt;/strong&gt; before heading outside to protect optical dark adaptation.&lt;/li&gt;
&lt;li&gt;Follow the real-time AOS countdown and compass bearings overhead, then record your confirmed sighting directly into your Observation Journal.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Crytic35" rel="noopener noreferrer"&gt;
        Crytic35
      &lt;/a&gt; / &lt;a href="https://github.com/Crytic35/SkyQuest" rel="noopener noreferrer"&gt;
        SkyQuest
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;🌐 God's Eye View&lt;/h1&gt;
&lt;/div&gt;

&lt;p&gt;&lt;a href="https://github.com/bilawalsidhu/gods-eye-view/actions/workflows/ci.yml" rel="noopener noreferrer"&gt;&lt;img src="https://github.com/bilawalsidhu/gods-eye-view/actions/workflows/ci.yml/badge.svg?branch=main" alt="CI"&gt;&lt;/a&gt; &lt;a href="https://x.com/bilawalsidhu/status/2093798887815348521" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/f54ca83af8ccc5439604e356be1cf76206b42e36ae17d655b3c77b699d5c98be/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f253233315f4769744875625f5472656e64696e672d7468616e6b5f796f75212d4630413633433f7374796c653d666c61742d737175617265266c6f676f3d676974687562" alt="Reached #1 on GitHub Trending"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;A spy-satellite simulator in your browser — then you realize the sources are public and the data is real.&lt;/h3&gt;
&lt;/div&gt;

&lt;p&gt;Photorealistic 3D globe. Live aircraft, ships, satellites, earthquakes, traffic, and public cameras. Hands-free voice control powered by a realtime AI agent.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;No place left behind.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/Crytic35/SkyQuest/docs/media/hero-open-source-reveal.gif"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fraw.githubusercontent.com%2FCrytic35%2FSkyQuest%2FHEAD%2Fdocs%2Fmedia%2Fhero-open-source-reveal.gif" alt="Orbital HUD, a tracked live globe, FLIR terrain — then OPEN SOURCED"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/@bilawalsidhu" rel="nofollow noopener noreferrer"&gt;&lt;br&gt;
  &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FCrytic35%2FSkyQuest%2FHEAD%2Fdocs%2Fmedia%2Fyoutube-popular-videos.png" alt="The God's Eye View video series on YouTube" width="100%"&gt;&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;▶️ &lt;strong&gt;From the project behind the viral God's Eye View series&lt;/strong&gt; &lt;em&gt;(formerly WorldView)&lt;/em&gt; — &lt;a href="https://youtube.com/playlist?list=PL6qSg2I-7_koPbDnSMo0QeeHX_RknA2uv&amp;amp;si=nBGYMoHWQw41v93Q" rel="nofollow noopener noreferrer"&gt;5M+ on YouTube&lt;/a&gt; · &lt;a href="https://www.google.com/search?q=god%27s+eye+view" rel="nofollow noopener noreferrer"&gt;25M+ across socials&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🏆 &lt;strong&gt;Reached #1 on GitHub Trending, daily and weekly · August 2026&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.producthunt.com/products/god-s-eye-view?launch=god-s-eye-view" rel="nofollow noopener noreferrer"&gt;#8 Product of the Day&lt;/a&gt;&lt;/strong&gt; · Hunted by Chris Messina, creator of the hashtag&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“pretty cool”&lt;/em&gt; — &lt;a href="https://x.com/BrendanEich/status/2094592096401490266" rel="nofollow noopener noreferrer"&gt;Brendan Eich&lt;/a&gt;, creator of JavaScript and co-founder of Mozilla and Brave · Featured on &lt;strong&gt;&lt;a href="https://pinokio.co/posts/01m1m4p9xxm3qw7dnnpj2wr93g" rel="nofollow noopener noreferrer"&gt;Pinokio&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;⚡ &lt;strong&gt;Start without API keys.&lt;/strong&gt; Install with &lt;a href="https://pinokio.co/apps/github-com-bilawalsidhu-gods-eye-view" rel="nofollow noopener noreferrer"&gt;Pinokio&lt;/a&gt; or run locally from the terminal. Add optional keys inside the app. &lt;strong&gt;&lt;a href="https://github.com/Crytic35/SkyQuest#-quick-start" rel="noopener noreferrer"&gt;→ Quick Start&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;


&lt;/div&gt;
&lt;br&gt;


&lt;div&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/Crytic35/SkyQuest#-quick-start" rel="noopener noreferrer"&gt;Quick Start&lt;/a&gt; · &lt;a href="https://github.com/Crytic35/SkyQuest#-the-first-five-minutes" rel="noopener noreferrer"&gt;First Five Minutes&lt;/a&gt; · &lt;a href="https://github.com/Crytic35/SkyQuest#-talk-to-it" rel="noopener noreferrer"&gt;Talk to It&lt;/a&gt; · &lt;a href="https://github.com/Crytic35/SkyQuest#-whats-on-the-globe" rel="noopener noreferrer"&gt;What's Live&lt;/a&gt;&lt;/strong&gt;…&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Crytic35/SkyQuest" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;



&lt;p&gt;SkyQuest is distributed under the Apache-2.0 license at &lt;strong&gt;&lt;a href="https://github.com/Crytic35/SkyQuest" rel="noopener noreferrer"&gt;Crytic35/SkyQuest&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Implementation Modules
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/Crytic35/SkyQuest/blob/main/src/skyquest/visibilityEngine.js" rel="noopener noreferrer"&gt;&lt;code&gt;src/skyquest/visibilityEngine.js&lt;/code&gt;&lt;/a&gt;: Physics engine determining geocentric Sun vectors, solar depression, satellite eclipse geometry, and visual magnitude estimates.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Crytic35/SkyQuest/blob/main/src/skyquest/passPredictor.js" rel="noopener noreferrer"&gt;&lt;code&gt;src/skyquest/passPredictor.js&lt;/code&gt;&lt;/a&gt;: SGP4 propagator scanning 48-hour forward windows with step-based horizon crossing and topocentric azimuth/elevation derivation.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Crytic35/SkyQuest/blob/main/src/skyquest/missionGenerator.js" rel="noopener noreferrer"&gt;&lt;code&gt;src/skyquest/missionGenerator.js&lt;/code&gt;&lt;/a&gt;: Assembles structured field briefings with strict factual boundaries.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Crytic35/SkyQuest/blob/main/src/skyquest/aiProvider.js" rel="noopener noreferrer"&gt;&lt;code&gt;src/skyquest/aiProvider.js&lt;/code&gt;&lt;/a&gt;: Open-weight model adapter featuring strict schema validation and a deterministic fallback pipeline.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Crytic35/SkyQuest/blob/main/src/skyquest/globeOverlay.js" rel="noopener noreferrer"&gt;&lt;code&gt;src/skyquest/globeOverlay.js&lt;/code&gt;&lt;/a&gt;: 3D geospatial rendering of orbits, ground tracks, and observer vectors on CesiumJS.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Crytic35/SkyQuest/blob/main/src/skyquest/observationJournal.js" rel="noopener noreferrer"&gt;&lt;code&gt;src/skyquest/observationJournal.js&lt;/code&gt;&lt;/a&gt;: Local client-side storage and telemetry export engine.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Open-Source AI Architecture: Gemma
&lt;/h3&gt;

&lt;p&gt;SkyQuest leverages Google's open-weight &lt;strong&gt;Gemma&lt;/strong&gt; model family (specifically &lt;code&gt;gemma2:9b&lt;/code&gt; and &lt;code&gt;gemma2:2b&lt;/code&gt;) running locally via Ollama or any OpenAI-compatible local inference runtime.&lt;/p&gt;

&lt;h3&gt;
  
  
  Grounded Dual-Engine System
&lt;/h3&gt;

&lt;p&gt;When applying generative AI to scientific and observational contexts, hallucination is a critical vulnerability. A language model must never invent an incorrect pass time, an inaccurate azimuth, or a fictitious elevation angle.&lt;/p&gt;

&lt;p&gt;To guarantee precision, SkyQuest separates calculation from communication:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Deterministic Astrodynamics Layer&lt;/strong&gt;: Exact orbital propagation, solar ephemeris calculations, and topocentric coordinates are computed strictly through validated mathematical models (SGP4 and USNO solar algorithms).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gemma Synthesis Layer&lt;/strong&gt;: The verified numerical parameters (pass start time, culmination elevation, duration, visual magnitude, and local cloud cover) are passed into Gemma with a rigid JSON schema. Gemma generates:

&lt;ul&gt;
&lt;li&gt;Concise contextual background explaining the engineering and scientific mission of the satellite.&lt;/li&gt;
&lt;li&gt;Accessible observing instructions adapted to the observer's experience level (e.g., beginner vs. seasoned amateur astronomer).&lt;/li&gt;
&lt;li&gt;Post-observation analytical prompts to foster deeper comprehension of orbital mechanics.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Verification and Fallback Resilience&lt;/strong&gt;: Every AI response is validated against strict structural constraints. Critical numerical values are immutable and directly inherited from the physics engine. Furthermore, if the local inference runtime is offline, SkyQuest transitions seamlessly to its internal deterministic briefing engine with zero latency penalty and zero user disruption.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;Open innovation is fundamental to real-world astronomical tooling:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Off-Grid Independence in Remote Dark-Sky Locations&lt;/strong&gt;: Optimal stargazing occurs in state parks, rural wilderness, and dark-sky reserves where cellular reception is often absent. Proprietary cloud APIs fail in disconnected environments. Open-weight models such as &lt;strong&gt;Gemma&lt;/strong&gt; execute entirely on-device, requiring no external network connectivity, incurring zero API fees, and operating free from vendor lock-in.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data Privacy and Location Sovereignty&lt;/strong&gt;: Exact observer coordinates—whether a private residence or a secluded field station—remain strictly local and are never transmitted to external cloud services.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open Science Stack&lt;/strong&gt;: By uniting open orbital data from CelesTrak, meteorological data from Open-Meteo, geographic reference data from OpenStreetMap, and open-weight models from Google Gemma, SkyQuest exemplifies how open-source technology can democratize real-world scientific exploration.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  My Agent Session
&lt;/h2&gt;

&lt;p&gt;This project was built and audited using agentic pair-programming workflows with Google Antigravity and DevRelay tooling. The development process encompassed rigorous mathematical testing, CesiumJS canvas optimization, strict package boundary audits across 120+ export groups, and cross-platform build validation.&lt;/p&gt;




&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Gemma&lt;/strong&gt;: Utilizing Google's open-weight models for local, verifiable scientific education, outdoor mission synthesis, and grounded astronomical briefings.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Team Submissions
&lt;/h2&gt;

&lt;p&gt;This project was conceived, implemented, and submitted independently by &lt;strong&gt;&lt;a href="https://dev.to/crytic35"&gt;@Crytic35&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

</description>
      <category>hacktoberfest</category>
      <category>ai</category>
      <category>opensource</category>
      <category>gemma</category>
    </item>
    <item>
      <title>I Built “What’s Inside?” for a Friend Who Wants to Know What She’s Actually Putting on Her Skin and Inside Her Body</title>
      <dc:creator>Pranit Mathane</dc:creator>
      <pubDate>Mon, 05 Oct 2026 00:39:45 +0000</pubDate>
      <link>https://dev.to/crytic35/i-built-whats-inside-for-a-friend-who-wants-to-know-what-shes-actually-putting-on-her-skin-and-4imp</link>
      <guid>https://dev.to/crytic35/i-built-whats-inside-for-a-friend-who-wants-to-know-what-shes-actually-putting-on-her-skin-and-4imp</guid>
      <description>&lt;h1&gt;
  
  
  What’s Inside?
&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-weekend-2026-10-01"&gt;Hacktoberfest Weekend Challenge: Build for a Friend&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;I built &lt;strong&gt;WHAT’S INSIDE?&lt;/strong&gt; because of a friend of mine, A.&lt;/p&gt;

&lt;p&gt;She has always been quite particular about what she eats and what she uses on her skin and hair. If she is buying a shampoo, she will turn the bottle around and read the ingredients. If she is buying a snack, she will check the back of the packet. Sometimes she will even send me a picture of an ingredient and ask, &lt;em&gt;“What is this supposed to be?”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The funny part is that I don't think she is overly paranoid about these things. She just genuinely wants to know what she is putting into her body and what she is putting on herself.&lt;/p&gt;

&lt;p&gt;The problem is that most ingredient labels are almost impossible for a normal person to understand. You look at a shampoo bottle and see things like phenoxyethanol, sodium chloride, limonene, linalool, surfactants and citric acid, and unless you have a chemistry or biology background, most of those names don't really mean much.&lt;/p&gt;

&lt;p&gt;So naturally, you search them online — and that creates an even bigger problem. One website says an ingredient is dangerous, another says it is perfectly fine, and somewhere on Instagram there is probably a reel claiming that the same ingredient is going to ruin your life.&lt;/p&gt;

&lt;p&gt;After seeing this happen so many times, I thought there had to be a better way.&lt;/p&gt;

&lt;p&gt;That was the starting point for &lt;strong&gt;WHAT’S INSIDE?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The idea is simple: take a picture of a product label and let the application break it down into something a normal person can actually understand.&lt;/p&gt;

&lt;p&gt;The project uses &lt;strong&gt;Gemma 4:12B locally through Ollama&lt;/strong&gt; to read the label, identify the product and extract its ingredients. Those ingredients are then matched against a local knowledge base containing information about what they do, why they are used, available scientific evidence, regulatory context, and things that are still uncertain.&lt;/p&gt;

&lt;p&gt;One thing I was very particular about while building it was &lt;strong&gt;not turning the application into another “toxic chemicals” scanner&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I didn't want to build something that sees a complicated chemical name and immediately puts a big red warning sign next to it. An ingredient can have a particular hazard in one situation and still be reasonable in another. The amount used, how someone is exposed to it, how long it stays on the skin, whether it is washed off, and individual sensitivity can all change the picture.&lt;/p&gt;

&lt;p&gt;And sometimes the ingredient list simply doesn't tell us enough.&lt;/p&gt;

&lt;p&gt;In those cases, the application should say that instead of pretending it knows more than it actually does.&lt;/p&gt;

&lt;p&gt;That idea ended up influencing the whole project.&lt;/p&gt;

&lt;p&gt;The backend is built with &lt;strong&gt;Python and FastAPI&lt;/strong&gt;, the frontend uses &lt;strong&gt;React, TypeScript, Vite and Tailwind&lt;/strong&gt;, and &lt;strong&gt;SQLite&lt;/strong&gt; stores the local ingredient and evidence data.&lt;/p&gt;

&lt;p&gt;The application is also designed to work across many different types of products — not just shampoo and skincare. It can handle food, cosmetics, cleaning products, baby products, pet products, gardening products, automotive products, electronics, DIY products and several others.&lt;/p&gt;

&lt;p&gt;I also added &lt;strong&gt;personal preferences&lt;/strong&gt;, because A's concerns aren't necessarily the same as someone else's. One person might care mostly about fragrance, another might be concerned about allergens, another might want to avoid certain food additives, and someone else might care about environmental impact.&lt;/p&gt;

&lt;p&gt;Instead of giving everybody exactly the same generic explanation, the application can bring the things that matter to that particular person to the front.&lt;/p&gt;

&lt;p&gt;I also wanted the project to work locally rather than depending completely on a cloud API. That was one of the reasons I chose &lt;strong&gt;Ollama and Gemma 4:12B&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A photo of someone's products can reveal more about them than you might initially think, and I liked the idea that the label could be analysed on the user's own machine without having to send it somewhere else just to get an answer.&lt;/p&gt;

&lt;p&gt;It also made the project more interesting to build because I had to think about the entire pipeline myself rather than simply sending an image to an API and displaying whatever came back.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why the UI is intentionally simple
&lt;/h3&gt;

&lt;p&gt;The UI was another decision I made quite deliberately.&lt;/p&gt;

&lt;p&gt;I didn't want it to look like one of those generic AI websites with a dark background, glowing purple gradients, floating cards and a giant “AI” in the middle of the screen.&lt;/p&gt;

&lt;p&gt;The whole purpose of this project is to make something complicated feel simpler, so the interface needed to reflect that.&lt;/p&gt;

&lt;p&gt;I kept it clean and fairly minimal, taking inspiration from actual ingredient labels, scientific notes, packaging and editorial layouts. The idea was that when someone opens the application, it should feel calm and understandable instead of making them feel like they have opened some complicated piece of AI software.&lt;/p&gt;

&lt;p&gt;Even the colours have a purpose. They are used to separate normal information, things worth paying attention to, evidence and uncertainty rather than simply being there because they look flashy.&lt;/p&gt;

&lt;p&gt;In a way, the simple UI is part of the message of the project.&lt;/p&gt;

&lt;p&gt;There is already so much noise around “chemicals” and product safety, and I didn't want the application itself to add to that noise. A chemical name isn't automatically something bad, just like something being called “natural” doesn't automatically make it good.&lt;/p&gt;

&lt;p&gt;I wanted &lt;strong&gt;WHAT’S INSIDE?&lt;/strong&gt; to sit somewhere in the middle and say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Here is what we know. Here is why this ingredient is here. Here is what the evidence says. And here is what we still don't know.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;At the end of the day, this project started with something very small: a friend standing in a store aisle, reading the back of a shampoo bottle and wondering what half of the words meant.&lt;/p&gt;

&lt;p&gt;I built &lt;strong&gt;WHAT’S INSIDE?&lt;/strong&gt; because I thought she shouldn't need to spend twenty minutes searching every ingredient on Google just to make a simple decision.&lt;/p&gt;

&lt;p&gt;She should be able to look at a label and actually understand it.&lt;/p&gt;

&lt;p&gt;And if I can make that experience a little easier for her, then I think the project has already done what I wanted it to do.&lt;/p&gt;




&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Try the project:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://whatsinside-pi.vercel.app/" rel="noopener noreferrer"&gt;https://whatsinside-pi.vercel.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The public deployment currently demonstrates the application workflow. The full local AI experience uses &lt;strong&gt;Gemma 4:12B through Ollama&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;GitHub repository:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://github.com/Crytic35/WhatsInside" rel="noopener noreferrer"&gt;https://github.com/Crytic35/WhatsInside&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The repository contains the frontend, FastAPI backend, local ingredient/evidence data, tests, and deployment configuration.&lt;/p&gt;




&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;WHAT’S INSIDE?&lt;/strong&gt; is built around &lt;strong&gt;Gemma 4:12B&lt;/strong&gt;, an open-weight model running locally through &lt;strong&gt;Ollama&lt;/strong&gt;. The goal was to make AI useful without making it the unquestioned source of truth.&lt;/p&gt;

&lt;p&gt;When a user scans a product label, Gemma helps read the label, identify and structure the ingredients, classify the product, and turn technical ingredient names into explanations that a normal person can understand.&lt;/p&gt;

&lt;p&gt;The extracted information is then checked against a &lt;strong&gt;local evidence database&lt;/strong&gt; containing ingredient functions, available evidence, potential concerns and limitations.&lt;/p&gt;

&lt;p&gt;This distinction matters. The AI isn't simply asked, &lt;em&gt;“Is this ingredient dangerous?”&lt;/em&gt; Instead, it helps interpret available evidence and clearly separates what is known from what cannot be determined from an ingredient list alone.&lt;/p&gt;

&lt;p&gt;The main stack is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Gemma 4:12B + Ollama&lt;/strong&gt; — local AI inference&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;React + TypeScript + Vite + Tailwind&lt;/strong&gt; — frontend&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;FastAPI + Python&lt;/strong&gt; — backend&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SQLite&lt;/strong&gt; — local ingredient and evidence database&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The architecture is intentionally &lt;strong&gt;local-first&lt;/strong&gt;, keeping the main AI workflow on the user's machine when running with Ollama.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;For me, open innovation was important because the problem itself is about &lt;strong&gt;transparency and trust&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A closed AI API could have made the project easier to build, but it would also mean relying on someone else's infrastructure for the core intelligence of the application.&lt;/p&gt;

&lt;p&gt;With &lt;strong&gt;Gemma running locally through Ollama&lt;/strong&gt;, I can control the model, prompts, data flow and application logic myself.&lt;/p&gt;

&lt;p&gt;It also makes the idea of privacy much more meaningful. A user can scan something they eat, apply to their skin, give to their child, or use around their home without the core analysis automatically requiring their images to be sent to a third-party AI provider.&lt;/p&gt;

&lt;p&gt;Open technology made it possible for me to build a product that explains information without turning the AI itself into another black box.&lt;/p&gt;




&lt;h2&gt;
  
  
  My Agent Session
&lt;/h2&gt;

&lt;p&gt;This was a &lt;strong&gt;solo build&lt;/strong&gt;, but I used AI-assisted development throughout the process.&lt;/p&gt;

&lt;p&gt;I used &lt;strong&gt;Antigravity and DevRelay&lt;/strong&gt; to help implement features, work through debugging, structure parts of the application and iterate quickly as the project evolved.&lt;/p&gt;

&lt;p&gt;The important product decisions were still mine — especially the evidence-based analysis, privacy-first architecture, safety boundaries, UI direction and how the results should actually be communicated to users.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DevRelay Agent Session:&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;[PASTE YOUR DEVRELAY AGENT SESSION LINK HERE]&lt;/code&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Best Use of Gemma
&lt;/h3&gt;

&lt;p&gt;I’m participating in the &lt;strong&gt;Best Use of Gemma&lt;/strong&gt; category because Gemma is not just an API sitting behind my application — it is part of the core workflow I’m building.&lt;/p&gt;

&lt;p&gt;For &lt;strong&gt;WHAT’S INSIDE?&lt;/strong&gt;, I’m running &lt;strong&gt;Gemma 4:12B locally through Ollama&lt;/strong&gt; to help read product labels, identify ingredients, structure information and turn complicated ingredient names into explanations that people can actually understand.&lt;/p&gt;

&lt;p&gt;While building this, I’ve also started thinking beyond a simple &lt;em&gt;“send a prompt, get an answer”&lt;/em&gt; approach. I’m learning how to make the model work as one part of a larger workflow — passing structured information between different stages, retrieving evidence, validating what the model produces, handling uncertainty and making sure the final answer is grounded in actual data instead of whatever the model happens to generate.&lt;/p&gt;

&lt;p&gt;This is exactly the direction I want to explore further with &lt;strong&gt;agentic AI harnesses and workflows&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Building this project with Gemma is giving me hands-on experience with local inference, model orchestration, structured outputs, tool-based workflows and designing systems where an LLM is a component of the application rather than the entire application.&lt;/p&gt;

&lt;p&gt;For me, this category is an opportunity to push that work further and learn how far I can take open-weight models when they are given the right tools, structure and workflow around them.&lt;/p&gt;




&lt;h2&gt;
  
  
  Team
&lt;/h2&gt;

&lt;p&gt;This was a &lt;strong&gt;solo project&lt;/strong&gt; — I designed, developed and worked on the project independently, so there are no teammates to credit for this submission.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>hf26challenge</category>
    </item>
  </channel>
</rss>
