<?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: Somnath Das</title>
    <description>The latest articles on DEV Community by Somnath Das (@somnathdas1262).</description>
    <link>https://dev.to/somnathdas1262</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F99mvlsfu5tfj9m7ku25d.png</url>
      <title>DEV Community: Somnath Das</title>
      <link>https://dev.to/somnathdas1262</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/somnathdas1262"/>
    <language>en</language>
    <item>
      <title>Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass</title>
      <dc:creator>Somnath Das</dc:creator>
      <pubDate>Sat, 10 Oct 2026 17:04:29 +0000</pubDate>
      <link>https://dev.to/somnathdas1262/hacktoberfest-open-source-ai-challenge-week-1-touch-grass-6a4</link>
      <guid>https://dev.to/somnathdas1262/hacktoberfest-open-source-ai-challenge-week-1-touch-grass-6a4</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;h1&gt;
  
  
  TouchGrass AI 🌿
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;An offline-first, privacy-respecting AI companion powered by open-weight Gemma 4 and Ollama that turns screen fatigue into restorative real-world grounding rituals.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




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

&lt;p&gt;Modern life traps us in endless notification loops, doomscrolling, and digital fatigue. Ironically, most digital wellness apps keep you glued to your phone with gamified streaks, push notifications, and social feeds.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TouchGrass AI&lt;/strong&gt; is built on the opposite philosophy: &lt;strong&gt;AI designed to make you put your device away.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🌿 What it does:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Personalized Offline Ritual Generation&lt;/strong&gt;: Tell TouchGrass AI your available time (e.g. &lt;em&gt;15 minutes&lt;/em&gt;, &lt;em&gt;30 minutes&lt;/em&gt;, &lt;em&gt;1 hour&lt;/em&gt;), your immediate environment (&lt;em&gt;backyard, urban balcony, city park, quiet room&lt;/em&gt;), your current emotional state (&lt;em&gt;overwhelmed, restless, brain-fogged&lt;/em&gt;), and your preferred activity (&lt;em&gt;tactile grounding, sky watching, walking barefoot, sensory counting&lt;/em&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Actionable 3-Step Phone-Free Rituals&lt;/strong&gt;: Powered by the local open-weight &lt;strong&gt;Gemma 4&lt;/strong&gt; model, it synthesizes a structured offline routine tailored to your setting with exact time allocations and sensory grounding cues (e.g., &lt;em&gt;"Touch tree bark and feel its texture"&lt;/em&gt;, &lt;em&gt;"Identify 3 distinct non-mechanical sounds"&lt;/em&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Screen-Free Pledge&lt;/strong&gt;: Before starting, users make an intentional commitment to pocket their phone or leave it behind on 'Do Not Disturb'.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zen Ambient Timer&lt;/strong&gt;: A distraction-free circular countdown with gentle audio transitions. It includes a built-in &lt;strong&gt;procedural breeze sound synthesizer&lt;/strong&gt; powered by the browser's Web Audio API—meaning zero audio downloads or internet bandwidth required.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mindful Reflection &amp;amp; Anchoring&lt;/strong&gt;: Once completed, gentle confetti and grounding reflection prompts help anchor the offline sensory experience before you re-engage with daily tasks.&lt;/li&gt;
&lt;/ol&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Developers &amp;amp; Tech Workers&lt;/strong&gt; experiencing screen burn-out after hours of coding and debugging.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Students &amp;amp; Remote Workers&lt;/strong&gt; who need guilt-free, restorative micro-breaks without getting trapped in social media rabbit holes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mindfulness &amp;amp; Digital Detox Seekers&lt;/strong&gt; who want personalized, structured grounding rituals without paying subscription fees or surrendering personal data to cloud corporations.&lt;/li&gt;
&lt;/ul&gt;




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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Live / Video Demo&lt;/strong&gt;: &lt;em&gt;(&lt;a href="https://canva.link/em1rccacq5cmavj" rel="noopener noreferrer"&gt;https://canva.link/em1rccacq5cmavj&lt;/a&gt;)&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local Preview&lt;/strong&gt;: Runs locally at &lt;code&gt;http://localhost:5173&lt;/code&gt; connecting to Ollama at &lt;code&gt;http://localhost:11434&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;(Tip: Add a GIF or screenshot of your interface here)&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;+-----------------------------------------------------------------------+
|  🌿 TouchGrass AI                   [ Gemma 4 - 100% Localhost Ready ]|
|                                                                       |
|  [ Free Time: 20 mins ] [ Location: Balcony ] [ Mood: Stressed ]      |
|  [ Activity: Tactile Grounding ]                                      |
|                                                                       |
|  ================== GENERATE PHONE-FREE PLAN =======================  |
|                                                                       |
|  Step 1: Pocket The Phone (3 min)   -&amp;gt; Feel the temperature shift     |
|  Step 2: Balcony Observation (12 min)-&amp;gt; Spot 3 shades of green        |
|  Step 3: Deep Stillness (5 min)     -&amp;gt; 5 slow diaphragmatic breaths   |
|                                                                       |
|  [ Start Screen-Free Session ] -&amp;gt; [ Ambient Breeze &amp;amp; Zen Timer ]      |
+-----------------------------------------------------------------------+
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Repository&lt;/strong&gt;: &lt;a href="https://github.com/somnathdas9733/touchgrass_ai" rel="noopener noreferrer"&gt;https://github.com/somnathdas9733/touchgrass_ai&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;License&lt;/strong&gt;: MIT License (Open Source)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Project Architecture
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;dev2/
├── backend/
│   ├── main.py              # FastAPI server &amp;amp; Ollama Gemma 4 integration
│   └── requirements.txt     # Python dependencies (fastapi, uvicorn, httpx)
├── frontend/
│   ├── src/
│   │   ├── components/
│   │   │   ├── InputForm.tsx            # Interactive ritual builder
│   │   │   ├── PlanView.tsx             # Structured 3-step offline ritual card
│   │   │   ├── TimerScreen.tsx          # Zen circular timer &amp;amp; ambient breeze
│   │   │   ├── CompletionScreen.tsx     # Celebration &amp;amp; reflection prompt
│   │   │   └── OllamaStatusBadge.tsx    # Live Ollama &amp;amp; Gemma 4 health badge
│   │   ├── utils/
│   │   │   └── audio.ts                 # Web Audio API wind synthesizer &amp;amp; chime
│   │   ├── App.tsx                      # State machine &amp;amp; view transitions
│   │   ├── index.css                    # Earthy, nature-inspired design system
│   │   └── types.ts                     # TypeScript schemas
│   ├── package.json
│   └── vite.config.ts
└── start.bat                # One-click launcher for backend + frontend
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






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

&lt;h3&gt;
  
  
  1. Open-Weight AI Foundation
&lt;/h3&gt;

&lt;p&gt;TouchGrass AI is built around &lt;strong&gt;Google's Gemma 4&lt;/strong&gt; open-weight model executed locally via &lt;strong&gt;Ollama&lt;/strong&gt; (&lt;code&gt;gemma4:latest&lt;/code&gt;). &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Zero Cloud Calls&lt;/strong&gt;: Inference runs completely on the user's local machine via Ollama's REST API endpoint (&lt;code&gt;http://localhost:11434/api/generate&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Structured JSON Synthesis&lt;/strong&gt;: We guide Gemma 4 with strict temperature (&lt;code&gt;0.3&lt;/code&gt;) and system formatting constraints to return a validated schema containing chronological steps, time allocations matching the user's exact free minutes, and physical sensory cues.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Graceful Fallback&lt;/strong&gt;: If Ollama is booting or the model is still downloading, an offline heuristic plan generator ensures the user is never left without an immediate ritual.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Modern Full-Stack Architecture
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Backend&lt;/strong&gt;: &lt;strong&gt;FastAPI&lt;/strong&gt; with asynchronous &lt;strong&gt;HTTPX&lt;/strong&gt; client communicates directly with Ollama. It validates durations, parses JSON markdown fences, and exposes health telemetry (&lt;code&gt;/api/health&lt;/code&gt;) to notify the user if Gemma is loaded in memory.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frontend&lt;/strong&gt;: &lt;strong&gt;React 19&lt;/strong&gt; + &lt;strong&gt;TypeScript&lt;/strong&gt; + &lt;strong&gt;Vite&lt;/strong&gt;. Styled with an organic, high-end nature aesthetic featuring Google Fonts (&lt;em&gt;Fraunces&lt;/em&gt; serif &amp;amp; &lt;em&gt;Plus Jakarta Sans&lt;/em&gt;), tactile glassmorphic cards, and earth tones (&lt;code&gt;#2D5A27&lt;/code&gt;, &lt;code&gt;#8FBC8F&lt;/code&gt;, &lt;code&gt;#F4F1EA&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Web Audio API Ambient Engine&lt;/strong&gt;: Rather than loading heavy external MP3s, TouchGrass AI uses an in-browser white-noise audio node filtered with low-pass resonance to procedurally synthesize a calming, offline ambient breeze.&lt;/li&gt;
&lt;/ul&gt;




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

&lt;h3&gt;
  
  
  1. The Disconnection &amp;amp; Privacy Paradox
&lt;/h3&gt;

&lt;p&gt;An application designed to help people escape digital monitoring should &lt;strong&gt;never&lt;/strong&gt; harvest their habits, moods, and GPS coordinates. Closed APIs log user prompts, associate queries with user accounts, and track personal mental health metrics on third-party cloud servers. &lt;br&gt;
Open innovation enables &lt;strong&gt;complete data sovereignty&lt;/strong&gt;: your mood, your location, and your free time never leave your CPU/GPU.&lt;/p&gt;
&lt;h3&gt;
  
  
  2. True Offline Autonomy
&lt;/h3&gt;

&lt;p&gt;The best places to touch grass—national parks, hiking trails, remote beaches, and quiet countryside cabins—rarely have reliable 5G connections. Because Gemma 4 runs locally through Ollama, TouchGrass AI works without an active internet connection. You can close your Wi-Fi, go offline, and generate grounding rituals in the middle of a forest.&lt;/p&gt;
&lt;h3&gt;
  
  
  3. Freedom from Rate Limits and Paywalls
&lt;/h3&gt;

&lt;p&gt;Wellness should not be locked behind $20/month subscription fees or OpenAI credit expirations. Open weights democratize AI, giving every individual equal access to intelligent, personalized guidance forever.&lt;/p&gt;


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





&lt;p&gt;&lt;em&gt;Built with the assistance of Antigravity AI pair programming session.&lt;/em&gt;&lt;/p&gt;


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



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Main Challenge&lt;/strong&gt;: Hacktoberfest Open-Source AI Challenge: Week 1 — &lt;em&gt;Touch Grass&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local Inference / Open-Weight AI Track&lt;/strong&gt;: Powered by Google Gemma 4 via Ollama.
&lt;em&gt;(If you used partner credits such as Render for web hosting, ElevenLabs, or Backboard, list them here!)&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  🚀 Quickstart &amp;amp; Local Setup
&lt;/h2&gt;
&lt;h3&gt;
  
  
  Prerequisites
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Ollama&lt;/strong&gt; installed: &lt;a href="https://ollama.com" rel="noopener noreferrer"&gt;ollama.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Pull the Gemma 4 model:
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   ollama pull gemma4:latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ol&gt;
&lt;li&gt;Python 3.10+ and Node.js 18+&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;
  
  
  1. Launch Ollama
&lt;/h3&gt;

&lt;p&gt;Make sure Ollama is active:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama run gemma4:latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Start the Backend
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;backend
python &lt;span class="nt"&gt;-m&lt;/span&gt; venv venv
&lt;span class="c"&gt;# Windows:&lt;/span&gt;
.&lt;span class="se"&gt;\v&lt;/span&gt;&lt;span class="nb"&gt;env&lt;/span&gt;&lt;span class="se"&gt;\S&lt;/span&gt;cripts&lt;span class="se"&gt;\a&lt;/span&gt;ctivate
&lt;span class="c"&gt;# Linux/Mac:&lt;/span&gt;
&lt;span class="nb"&gt;source &lt;/span&gt;venv/bin/activate

pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt
python &lt;span class="nt"&gt;-m&lt;/span&gt; uvicorn main:app &lt;span class="nt"&gt;--host&lt;/span&gt; 127.0.0.1 &lt;span class="nt"&gt;--port&lt;/span&gt; 8000 &lt;span class="nt"&gt;--reload&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. Start the Frontend
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;frontend
npm &lt;span class="nb"&gt;install
&lt;/span&gt;npm run dev &lt;span class="nt"&gt;--&lt;/span&gt; &lt;span class="nt"&gt;--host&lt;/span&gt; 127.0.0.1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Open your browser at &lt;strong&gt;&lt;a href="http://127.0.0.1:5173" rel="noopener noreferrer"&gt;http://127.0.0.1:5173&lt;/a&gt;&lt;/strong&gt;, unplug from the digital noise, and go touch grass! 🌿&lt;/p&gt;

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