<?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: PRUTHVI RAJ G</title>
    <description>The latest articles on DEV Community by PRUTHVI RAJ G (@pruthvirajg25).</description>
    <link>https://dev.to/pruthvirajg25</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%2F4161241%2F1fd570e8-1a6f-4a7b-8ea7-3d065387ea10.png</url>
      <title>DEV Community: PRUTHVI RAJ G</title>
      <link>https://dev.to/pruthvirajg25</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/pruthvirajg25"/>
    <language>en</language>
    <item>
      <title>🌿 Touch Grass AI: Offline Outdoor Companion &amp; Open-Source Species Identifier</title>
      <dc:creator>PRUTHVI RAJ G</dc:creator>
      <pubDate>Sat, 10 Oct 2026 06:46:10 +0000</pubDate>
      <link>https://dev.to/pruthvirajg25/touch-grass-ai-offline-outdoor-companion-open-source-species-identifier-4k83</link>
      <guid>https://dev.to/pruthvirajg25/touch-grass-ai-offline-outdoor-companion-open-source-species-identifier-4k83</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fszrlynrtq5bl2k60m0cv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fszrlynrtq5bl2k60m0cv.png" alt="A brief description of what the image shows" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;




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

&lt;p&gt;&lt;strong&gt;Touch Grass AI&lt;/strong&gt; is an open-source, offline-first outdoor companion designed to help people reconnect with nature while reducing unnecessary screen time.&lt;/p&gt;

&lt;p&gt;Whether you're hiking on remote trails without cellular service, identifying plants in your local park, or recording bird calls in your backyard, Touch Grass AI aims to bring nature exploration and AI-powered identification together in one accessible platform.&lt;/p&gt;

&lt;p&gt;The goal is simple: &lt;strong&gt;use technology to help people spend more time outdoors, not more time on their screens.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  👥 Who Is It For?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;🥾 &lt;strong&gt;Hikers &amp;amp; Trail Runners:&lt;/strong&gt; Explore outdoor routes, discover nature, and generate GPX routes for offline use.&lt;/li&gt;
&lt;li&gt;🌱 &lt;strong&gt;Gardeners &amp;amp; Foragers:&lt;/strong&gt; Identify plant species, maintain species logs, and explore local frost and microclimate information.&lt;/li&gt;
&lt;li&gt;🐦 &lt;strong&gt;Birdwatchers &amp;amp; Nature Enthusiasts:&lt;/strong&gt; Analyze audio spectrograms and explore AI-powered bird-call recognition.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ⏱️ Designed to Reduce Screen Time
&lt;/h3&gt;

&lt;p&gt;Unlike traditional apps designed to maximize engagement, Touch Grass AI encourages short, purposeful interactions.&lt;/p&gt;

&lt;p&gt;Its &lt;strong&gt;15-Minute Outdoor Micro-Quest&lt;/strong&gt; feature encourages users to complete a nature-based activity, put their phones away, and engage with the environment around them.&lt;/p&gt;

&lt;p&gt;The idea is to make technology a companion to outdoor exploration rather than a distraction from it.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 Live Demo
&lt;/h2&gt;

&lt;p&gt;🌐 &lt;strong&gt;Live Application:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://hacktoberfest-week1.onrender.com" rel="noopener noreferrer"&gt;https://hacktoberfest-week1.onrender.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🩺 &lt;strong&gt;API Health Endpoint:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://hacktoberfest-week1.onrender.com/api/health" rel="noopener noreferrer"&gt;https://hacktoberfest-week1.onrender.com/api/health&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;💻 &lt;strong&gt;GitHub Repository:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/PruthviRajG25/Hacktoberfest-Week1" rel="noopener noreferrer"&gt;https://github.com/PruthviRajG25/Hacktoberfest-Week1&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  ⚡ Test the API
&lt;/h3&gt;

&lt;p&gt;You can check the deployed backend directly from your terminal using the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; GET https://hacktoberfest-week1.onrender.com/api/health
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The expected response is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"status"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"online"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"appName"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Touch Grass AI"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"openAIWeights"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Pre-Warmed Ultra-Fast ViT &amp;amp; AST Neural Engine (&amp;lt;15ms)"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"offlineModeSupported"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"timestamp"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2026-10-10T08:00:00.000Z"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Note: This is the expected response format provided for the project. Actual values and service availability may vary.&lt;/em&gt;&lt;/p&gt;




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

&lt;p&gt;Touch Grass AI combines a web-based outdoor experience with AI-assisted image and audio classification, interactive mapping, and local data storage.&lt;/p&gt;

&lt;p&gt;The application is organized into two main parts:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Client-side experience&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;📸 Image capture and plant-species identification.&lt;/li&gt;
&lt;li&gt;🎙️ Audio recording and spectrogram-based analysis.&lt;/li&gt;
&lt;li&gt;🗺️ Interactive maps and outdoor route exploration.&lt;/li&gt;
&lt;li&gt;💾 Local storage for an offline-friendly species journal.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Backend inference and APIs&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;⚡ Express.js REST API.&lt;/li&gt;
&lt;li&gt;🩺 API health monitoring.&lt;/li&gt;
&lt;li&gt;🌿 Image classification endpoint.&lt;/li&gt;
&lt;li&gt;🎵 Audio classification endpoint.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🔄 System Architecture
&lt;/h3&gt;



&lt;pre data-lang="mermaid"&gt;&lt;code&gt;flowchart TD
    A["👤 Explorer / Hiker"] --&amp;gt; B["📱 Web Client / PWA"]

    subgraph Frontend["Client-Side Features"]
        B --&amp;gt; C["🗺️ Leaflet Route Builder"]
        B --&amp;gt; D["🎙️ Audio Recorder"]
        B --&amp;gt; E["💾 Offline Species Journal"]
    end

    subgraph Backend["Express.js Backend"]
        B --&amp;gt;|REST API| F["⚡ Express Server"]
        F --&amp;gt; G["🟢 GET /api/health"]
        F --&amp;gt; H["📸 POST /api/classify-image"]
        F --&amp;gt; I["🎵 POST /api/classify-audio"]
        H --&amp;gt; J["🌿 Vision Classification"]
        I --&amp;gt; K["🐦 Audio Classification"]
    end&lt;/code&gt;&lt;/pre&gt;






&lt;h2&gt;
  
  
  🛠️ Technology Stack &amp;amp; AI Models
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🌿 Vision Identification
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Vision Transformer (ViT)&lt;/strong&gt; and &lt;strong&gt;MobileNetV3&lt;/strong&gt; are the proposed vision models for classifying plant-related images, including leaves and trees.&lt;/p&gt;

&lt;p&gt;The objective is to make species identification accessible without depending entirely on proprietary cloud AI services.&lt;/p&gt;

&lt;h3&gt;
  
  
  🐦 Audio Identification
&lt;/h3&gt;

&lt;p&gt;The &lt;strong&gt;Audio Spectrogram Transformer (AST)&lt;/strong&gt; is used in the planned audio-classification pipeline for analyzing recorded sounds and supporting bird-call recognition.&lt;/p&gt;

&lt;h3&gt;
  
  
  🗺️ Interactive Maps
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://leafletjs.com/" rel="noopener noreferrer"&gt;Leaflet.js&lt;/a&gt;:&lt;/strong&gt; Interactive map rendering and outdoor route visualization.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://www.openstreetmap.org/" rel="noopener noreferrer"&gt;OpenStreetMap&lt;/a&gt;:&lt;/strong&gt; Open map data for exploring outdoor locations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GPX export:&lt;/strong&gt; Designed to support saving routes for use with compatible navigation applications.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ⚙️ Backend &amp;amp; Deployment
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://nodejs.org/" rel="noopener noreferrer"&gt;Node.js&lt;/a&gt;:&lt;/strong&gt; JavaScript runtime for the backend.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://expressjs.com/" rel="noopener noreferrer"&gt;Express.js&lt;/a&gt;:&lt;/strong&gt; REST API and backend routing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://render.com/" rel="noopener noreferrer"&gt;Render&lt;/a&gt;:&lt;/strong&gt; Application hosting and deployment.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local storage and offline-friendly web capabilities:&lt;/strong&gt; Intended to keep supported journal data accessible without a continuous internet connection.&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;For outdoor applications, open innovation can make a meaningful difference in accessibility, privacy, and reliability.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. 📶 Reliability Beyond Connectivity
&lt;/h3&gt;

&lt;p&gt;Remote trails and forests often have limited network coverage. Local inference and offline-capable features can help users continue supported activities even when connectivity disappears.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. 🔒 Privacy by Design
&lt;/h3&gt;

&lt;p&gt;Processing supported photos, recordings, and location data locally can reduce the need to upload sensitive information to third-party services.&lt;/p&gt;

&lt;p&gt;The long-term goal is to give users more control over their outdoor data and nature observations.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. 💸 Lower Dependence on Paid APIs
&lt;/h3&gt;

&lt;p&gt;Open-weight models can reduce reliance on metered AI services and recurring per-request charges. This creates opportunities to build accessible tools without making every identification dependent on a paid cloud API.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. 🌍 Community-Driven Development
&lt;/h3&gt;

&lt;p&gt;Open-source development allows contributors to improve classification, expand species coverage, refine offline support, and build features that benefit nature enthusiasts everywhere.&lt;/p&gt;




&lt;h2&gt;
  
  
  🤖 My AI Agent Development Workflow
&lt;/h2&gt;

&lt;p&gt;AI-assisted development workflows supported the project's implementation, testing, and deployment process.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DevRelay CLI integration:&lt;/strong&gt; The development session was logged and managed through DevRelay CLI tools.&lt;/p&gt;

&lt;p&gt;The project also provides an opportunity to explore how AI-assisted engineering workflows can help developers prototype and iterate on practical, open-source applications.&lt;/p&gt;




&lt;h2&gt;
  
  
  🏆 Hacktoberfest Challenge Categories
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;🌿 &lt;strong&gt;Main Challenge:&lt;/strong&gt; &lt;a href="https://dev.to/challenges/hacktoberfest-week1-2026-10-05"&gt;Hacktoberfest Week 1 — Touch Grass&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🤖 &lt;strong&gt;Partner Category:&lt;/strong&gt; Open-Weight AI&lt;/li&gt;
&lt;li&gt;📱 &lt;strong&gt;Partner Category:&lt;/strong&gt; Local / Offline Inference&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🌱 What's Next?
&lt;/h2&gt;

&lt;p&gt;Touch Grass AI is built around a simple idea: technology should help us discover more of the world beyond our screens.&lt;/p&gt;

&lt;p&gt;Future improvements can focus on expanding species coverage, improving model performance, strengthening offline functionality, and making outdoor exploration more accessible.&lt;/p&gt;

&lt;p&gt;If you're interested in open-source AI, nature exploration, offline-first applications, or contributing to projects that encourage healthier technology habits, check out the repository.&lt;/p&gt;

&lt;p&gt;🔗 &lt;strong&gt;Explore the code:&lt;/strong&gt; &lt;a href="https://github.com/PruthviRajG25/Hacktoberfest-Week1" rel="noopener noreferrer"&gt;https://github.com/PruthviRajG25/Hacktoberfest-Week1&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀Try the application: &lt;a href="https://hacktoberfest-week1.onrender.com" rel="noopener noreferrer"&gt;https://hacktoberfest-week1.onrender.com&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;🌿 Get outside, explore your surroundings, and go touch grass!&lt;/p&gt;

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