<?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: Uditya Krishna</title>
    <description>The latest articles on DEV Community by Uditya Krishna (@uditya22flux).</description>
    <link>https://dev.to/uditya22flux</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%2F4163554%2F47e88704-6d7e-4aa8-a644-c678093ebec2.jpg</url>
      <title>DEV Community: Uditya Krishna</title>
      <link>https://dev.to/uditya22flux</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/uditya22flux"/>
    <language>en</language>
    <item>
      <title>Roveya: Touch Grass with Open-Weight Llama 3.2 &amp; the 75-Meter Real World Geofence</title>
      <dc:creator>Uditya Krishna</dc:creator>
      <pubDate>Tue, 13 Oct 2026 07:02:54 +0000</pubDate>
      <link>https://dev.to/uditya22flux/roveya-touch-grass-with-open-weight-llama-32-the-75-meter-real-world-geofence-4pno</link>
      <guid>https://dev.to/uditya22flux/roveya-touch-grass-with-open-weight-llama-32-the-75-meter-real-world-geofence-4pno</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;Modern travel platforms trap us in screen doomscrolling and consensus bias. Algorithms push every traveler to the exact same crowded five-star tourist traps, while authentic local places get buried under 1-star ratings for trivial reasons like "worn chairs" or "tight parking."&lt;/p&gt;

&lt;p&gt;We built &lt;strong&gt;Roveya&lt;/strong&gt; — an exploration app whose philosophy is &lt;em&gt;"Find the 5-star in 1-star spots"&lt;/em&gt; — specifically designed to get people off their screens and into the physical world.&lt;/p&gt;

&lt;h3&gt;
  
  
  How it gets people off the screen and into the world:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Open-Weight AI Vibe Extractor (Meta Llama 3.2)&lt;/strong&gt;: Instead of spending 20 minutes doomscrolling reviews indoors, an open-weight model (&lt;code&gt;meta-llama/Llama-3.2-1B-Instruct&lt;/code&gt;) scans 1-star complaints and extracts the hidden 5-star standout feature in seconds (e.g. &lt;em&gt;"Ignore the worn chairs: order the hand-pounded spiced cardamom chai"&lt;/em&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mood-Matched Outdoor Micro-Adventures&lt;/strong&gt;: Travelers pick their mood (&lt;em&gt;Calm, Curious, Adventurous, Reflective, Social&lt;/em&gt;) and walking radius (&lt;code&gt;400 m&lt;/code&gt;, &lt;code&gt;500 m&lt;/code&gt;, &lt;code&gt;1 km&lt;/code&gt;). Roveya routes them toward overlooked heritage spots for their one verified standout feature.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The 75-Meter Physical Geofence Lock&lt;/strong&gt;: You &lt;strong&gt;cannot&lt;/strong&gt; check in or review a spot from your couch. The app uses high-accuracy GPS geofencing that only unlocks check-in when you physically walk within &lt;strong&gt;75 meters&lt;/strong&gt; of the spot.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Smooth Compass Navigation&lt;/strong&gt;: A 60/120 FPS shortest-arc compass dial guides your walking route along pedestrian footpaths and trails via OpenStreetMap and OSRM — keeping screen time under 15 seconds so you look at the world around you.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Verified Video Proof &amp;amp; Stamps&lt;/strong&gt;: Once on-site, travelers collect a postal stamp and record video proof of the 5-star feature, which streams to the global community feed.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Who is it for?
&lt;/h3&gt;

&lt;p&gt;Solo travelers, weekend walkers, hackers, and explorers who are tired of algorithmic tourist traps and want authentic, serendipitous adventures in their own cities.&lt;/p&gt;




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

&lt;ul&gt;
&lt;li&gt; &lt;strong&gt;Download Android APK (v1.0.0)&lt;/strong&gt;: &lt;a href="https://github.com/uditya22-flux/LAYOVER123/releases/download/v1.0.0/app-release.apk" rel="noopener noreferrer"&gt;app-release.apk (Direct Download)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;GitHub Release&lt;/strong&gt;: &lt;a href="https://github.com/uditya22-flux/LAYOVER123/releases/tag/v1.0.0" rel="noopener noreferrer"&gt;Roveya v1.0.0 Release Page&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Desk Demo Mode&lt;/strong&gt;: For reviewers testing without walking outdoors, the app features a built-in &lt;em&gt;"Simulate walk"&lt;/em&gt; button on the map screen that simulates real-time walking movement, shortest-arc compass heading lerping, and the 75m proximity check-in unlock.&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/uditya22-flux" rel="noopener noreferrer"&gt;
        uditya22-flux
      &lt;/a&gt; / &lt;a href="https://github.com/uditya22-flux/LAYOVER123" rel="noopener noreferrer"&gt;
        LAYOVER123
      &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;🧭 ROVEYA&lt;/h1&gt;
&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;&lt;em&gt;Find the 5-star in 1-star spots.&lt;/em&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;p&gt;A Flutter mobile app that flips conventional travel ratings on its head — sending travelers to overlooked 1-star legacy places specifically for their verified 5-star standout features.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://flutter.dev" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/9dc45192203994b4170066bc055b31d79b98d463bc99d2eb5b6ac41dc2d2c71b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f466c75747465722d253345253344332e332e302d3032353639423f7374796c653d666f722d7468652d6261646765266c6f676f3d666c7574746572266c6f676f436f6c6f723d7768697465" alt="Flutter"&gt;&lt;/a&gt;
&lt;a href="https://dart.dev" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/faebd4fad291f203217f9b840c20249a11e57df36c8267b5fccca3d0d21f8439/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f446172742d253345253344332e332e302d3031373543323f7374796c653d666f722d7468652d6261646765266c6f676f3d64617274266c6f676f436f6c6f723d7768697465" alt="Dart"&gt;&lt;/a&gt;
&lt;a href="https://supabase.com" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/50f58f3004095f570ac67daed6920b0acafb86e3944981fdd85b3d0651705c78/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4261636b656e642d53757061626173652d3345434638453f7374796c653d666f722d7468652d6261646765266c6f676f3d7375706162617365266c6f676f436f6c6f723d7768697465" alt="Supabase"&gt;&lt;/a&gt;
&lt;a href="https://www.openstreetmap.org" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/d2af30ffee0751587775bef68d527c2d1774599d1a5b0b2dcca592cd5d5ed2cf/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4d6170732d4f70656e5374726565744d61702d3745424336463f7374796c653d666f722d7468652d6261646765266c6f676f3d6f70656e7374726565746d6170266c6f676f436f6c6f723d7768697465" alt="OpenStreetMap"&gt;&lt;/a&gt;
&lt;a href="https://android.com" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/9b5fb60dfbbc215e00421fbfdbd96780632df09036e82d67d42185e5fb7e0d49/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f506c6174666f726d2d416e64726f69642d3344444338343f7374796c653d666f722d7468652d6261646765266c6f676f3d616e64726f6964266c6f676f436f6c6f723d7768697465" alt="Android"&gt;&lt;/a&gt;
&lt;a href="https://github.com/uditya22-flux/LAYOVER123/LICENSE" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/7a1226d14a365d288bfe51ece915ee0c7e754a16faa51ff06436504de29b33b4/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d79656c6c6f772e7376673f7374796c653d666f722d7468652d6261646765" alt="License: MIT"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;📌 Table of Contents&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/uditya22-flux/LAYOVER123#-the-problem--the-solution" rel="noopener noreferrer"&gt;The Problem &amp;amp; The Solution&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/uditya22-flux/LAYOVER123#-how-it-works" rel="noopener noreferrer"&gt;How It Works&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/uditya22-flux/LAYOVER123#-key-features" rel="noopener noreferrer"&gt;Key Features&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/uditya22-flux/LAYOVER123#-tech-stack" rel="noopener noreferrer"&gt;Tech Stack&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/uditya22-flux/LAYOVER123#-project-architecture" rel="noopener noreferrer"&gt;Project Architecture&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/uditya22-flux/LAYOVER123#-prerequisites" rel="noopener noreferrer"&gt;Prerequisites&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/uditya22-flux/LAYOVER123#-quick-start" rel="noopener noreferrer"&gt;Quick Start&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/uditya22-flux/LAYOVER123#-configuration" rel="noopener noreferrer"&gt;Configuration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/uditya22-flux/LAYOVER123#-database-setup-supabase" rel="noopener noreferrer"&gt;Database Setup (Supabase)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/uditya22-flux/LAYOVER123#-build-apk" rel="noopener noreferrer"&gt;Build APK&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/uditya22-flux/LAYOVER123#-device-permissions" rel="noopener noreferrer"&gt;Device Permissions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/uditya22-flux/LAYOVER123#-demo-presentation-mode" rel="noopener noreferrer"&gt;Demo Presentation Mode&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/uditya22-flux/LAYOVER123#-troubleshooting" rel="noopener noreferrer"&gt;Troubleshooting&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/uditya22-flux/LAYOVER123#-license" rel="noopener noreferrer"&gt;License&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;💡 The Problem &amp;amp; The Solution&lt;/h2&gt;

&lt;/div&gt;
&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;The Problem&lt;/th&gt;
&lt;th&gt;Roveya's Solution&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Consensus Bias&lt;/strong&gt;: Mainstream apps funnel every traveler to the same 5-star tourist traps.&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Uncover The Overlooked&lt;/strong&gt;: Routes users to low-rated legacy spots with unique character.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Unfair Legacy Ratings&lt;/strong&gt;: Places receive 1-star reviews for bad parking, worn chairs, or slow Wi-Fi.&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Spotlight Standout Features&lt;/strong&gt;: Highlights the &lt;em&gt;one thing&lt;/em&gt; that earns 5 stars (sunset view, secret recipe, banyan silence, maker community).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Fake &amp;amp; Text-only Reviews&lt;/strong&gt;: Anonymous text reviews&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&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/uditya22-flux/LAYOVER123" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Repository&lt;/strong&gt;: &lt;a href="https://github.com/uditya22-flux/LAYOVER123" rel="noopener noreferrer"&gt;https://github.com/uditya22-flux/LAYOVER123&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;License&lt;/strong&gt;: MIT License (Open Source)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Primary Branches&lt;/strong&gt;: &lt;code&gt;main&lt;/code&gt;, &lt;code&gt;master&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;Roveya was architected around &lt;strong&gt;open-weight AI inference&lt;/strong&gt; and built with &lt;strong&gt;Antigravity&lt;/strong&gt;, Google DeepMind's agentic AI pair programming system.&lt;/p&gt;

&lt;h3&gt;
  
  
  Open-Source AI Stack:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Open-Weight Model&lt;/strong&gt;: We integrated &lt;strong&gt;Meta Llama 3.2&lt;/strong&gt; (&lt;code&gt;meta-llama/Llama-3.2-1B-Instruct&lt;/code&gt;) via the Hugging Face Serverless Open-Source Model API to distill negative review text into 5-star gems in real time.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Offline Zero-Signal Trail Mode&lt;/strong&gt;: For outdoor trails with zero cellular service, Roveya includes an on-device local NLP heuristic engine (&lt;code&gt;ai_service.dart&lt;/code&gt;) that parses reviews directly on the phone with zero internet connection.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agent-Driven Engineering&lt;/strong&gt;: We used the Antigravity agentic harness to rapidly synthesize the reactive Flutter frontend, write custom mathematical algorithms for shortest-arc angular interpolation (&lt;code&gt;_lerpAngle&lt;/code&gt;) to eliminate 360° compass heading jitter during live walking, and configure PostgreSQL schemas with Supabase.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Full-Stack Open Tech Stack:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Client&lt;/strong&gt;: Flutter 3.x &amp;amp; Dart 3.x with Material 3 and a warm artisan retro theme (&lt;code&gt;C.cream&lt;/code&gt;, &lt;code&gt;C.ocean&lt;/code&gt;, &lt;code&gt;C.peach&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cloud Backend&lt;/strong&gt;: Supabase (PostgreSQL, Row Level Security, PostgREST relations).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Media Pipeline&lt;/strong&gt;: Supabase Cloud Storage for public &lt;code&gt;.mp4&lt;/code&gt; video streaming with inline frame thumbnail decoding.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Geospatial &amp;amp; Mapping&lt;/strong&gt;: OpenStreetMap (Overpass API) and OSRM (Open Source Routing Machine) with zero paid proprietary mapping APIs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sensors&lt;/strong&gt;: &lt;code&gt;geolocator&lt;/code&gt; for device GPS streaming and &lt;code&gt;video_player&lt;/code&gt; for hardware-accelerated video decoding.&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;Closed mapping platforms (Google Maps, Yelp, TripAdvisor) operate on advertising revenue and algorithmic consensus. Their closed rating loops homogenize cities—burying humble heritage spaces under low ratings while charging developers steep API tolls.&lt;/p&gt;

&lt;p&gt;Open innovation made Roveya possible:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Zero-Signal Trail Independence&lt;/strong&gt;: When hikers and explorers go outside into nature, closed proprietary APIs stop working the second cell signal drops. Open-weight models and open-source NLP allow our app to run trail-side with zero cloud dependency.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Unrestricted Walking Geometry&lt;/strong&gt;: OpenStreetMap and OSRM provide full pedestrian footpaths and road routing without per-request metering or corporate tracking.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Community Ownership&lt;/strong&gt;: User video reviews are preserved in open PostgreSQL schemas governed by transparent Row Level Security policies, rather than trapped inside a closed platform silo.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Autonomous Developer Acceleration&lt;/strong&gt;: Open agentic AI tooling combined with open-source mobile frameworks allowed our team to design, build, and deploy a production-grade full-stack mobile app with cloud media pipelines in days.&lt;/li&gt;
&lt;/ol&gt;




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

&lt;p&gt;This project was built pair-programming with the &lt;strong&gt;Antigravity&lt;/strong&gt; agentic AI assistant.&lt;/p&gt;

&lt;p&gt;Key milestones accomplished during the agentic session:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Integrated Meta Llama 3.2 open-weight model inference and offline trail fallbacks into Flutter.&lt;/li&gt;
&lt;li&gt;Resolved multi-device cloud synchronization by enforcing PostgREST foreign-key UUID resolution in &lt;code&gt;Backend.insertReview&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Engineered shortest-arc angular math to eliminate 360° compass heading flipping during live navigation.&lt;/li&gt;
&lt;li&gt;Handcrafted vector canvas assets, native Android launch splash screens, and high-resolution adaptive app icons.&lt;/li&gt;
&lt;li&gt;Configured Gradle memory allocations for smooth, low-RAM production APK compilation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Repository commit trajectory: &lt;a href="https://github.com/uditya22-flux/LAYOVER123/commit/fdfa75f" rel="noopener noreferrer"&gt;&lt;code&gt;fdfa75f&lt;/code&gt;&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;







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

&lt;p&gt;This project was built by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a class="mentioned-user" href="https://dev.to/uditya22flux"&gt;@uditya22flux&lt;/a&gt; — &lt;a href="https://github.com/uditya22-flux" rel="noopener noreferrer"&gt;https://github.com/uditya22-flux&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a class="mentioned-user" href="https://dev.to/vthejas44rgb"&gt;@vthejas44rgb&lt;/a&gt; — &lt;a href="https://github.com/vthejas44-rgb" rel="noopener noreferrer"&gt;https://github.com/vthejas44-rgb&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

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