<?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: Vaibhavi Pednekar</title>
    <description>The latest articles on DEV Community by Vaibhavi Pednekar (@vaibhavi_pednekar_a378c06).</description>
    <link>https://dev.to/vaibhavi_pednekar_a378c06</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%2F4162183%2F3c6e9032-b118-49f1-972b-23ddde57c65b.png</url>
      <title>DEV Community: Vaibhavi Pednekar</title>
      <link>https://dev.to/vaibhavi_pednekar_a378c06</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vaibhavi_pednekar_a378c06"/>
    <language>en</language>
    <item>
      <title>GrassQuest: an offline scavenger hunt that gets you off your phone, powered by Gemma</title>
      <dc:creator>Vaibhavi Pednekar</dc:creator>
      <pubDate>Wed, 07 Oct 2026 14:23:07 +0000</pubDate>
      <link>https://dev.to/vaibhavi_pednekar_a378c06/grassquest-an-offline-scavenger-hunt-that-gets-you-off-your-phone-powered-by-gemma-5b9n</link>
      <guid>https://dev.to/vaibhavi_pednekar_a378c06/grassquest-an-offline-scavenger-hunt-that-gets-you-off-your-phone-powered-by-gemma-5b9n</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;I spend most of my day at a screen, and when I finally go outside, I end up scrolling on a bench. Walk-tracking apps make it worse, because they keep the phone in your hand the whole time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GrassQuest&lt;/strong&gt; is the opposite. The screen is used for about two minutes before a walk and a few minutes after it, and never during it.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Before:&lt;/strong&gt; You pick the season, the kind of place (park, beach, hill, campus, even a balcony), who's coming, and how much time you have. A local AI model writes a quest with a title and 8 small tasks, like "find three different leaf shapes" or "listen for a sound that repeats." You print it as a one-page card.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;During:&lt;/strong&gt; Nothing. The card is paper, so it works with no signal and no phone. You tick things off with a pen.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;After:&lt;/strong&gt; You upload a few photos. A local vision model describes them, says whether they plausibly match each task, and writes a short trail journal entry. Its guesses are labelled "AI guess, may be wrong," and it's told never to name a species with certainty.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It's for anyone who wants a reason to go outside and not look at their phone once they're there.&lt;/p&gt;

&lt;p&gt;[ADD YOUR OUTDOOR STORY HERE: where you went, how long, what the tasks were like, what you noticed. 3 to 5 sentences.]&lt;/p&gt;

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

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/THG1peytR5g" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;The video shows generating a quest, the printed card, and the photo check and journal. [If you did it: I turned Wi-Fi off before generating, and everything worked the same.]&lt;/p&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/vaibhavi897" rel="noopener noreferrer"&gt;
        vaibhavi897
      &lt;/a&gt; / &lt;a href="https://github.com/vaibhavi897/grassquest" rel="noopener noreferrer"&gt;
        grassquest
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Offline outdoor scavenger-hunt quests powered by Gemma and Ollama. Get off the screen.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;GrassQuest 🌿&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Plan a tiny outdoor adventure, print it, put your phone away, and keep a local trail journal.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/e801a66299d2c15286fe0fee660d9ffa666c1c5576e5e1536acc07b49ce8ac8f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f707974686f6e2d332e31302532422d626c7565"&gt;&lt;img src="https://camo.githubusercontent.com/e801a66299d2c15286fe0fee660d9ffa666c1c5576e5e1536acc07b49ce8ac8f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f707974686f6e2d332e31302532422d626c7565" alt="Python 3.10+"&gt;&lt;/a&gt; &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/f8df3091bbe1149f398a5369b2c39e896766f9f6efba3477c63e9b4aa940ef14/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d677265656e"&gt;&lt;img src="https://camo.githubusercontent.com/f8df3091bbe1149f398a5369b2c39e896766f9f6efba3477c63e9b4aa940ef14/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d677265656e" alt="MIT"&gt;&lt;/a&gt; &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/f93fae9225f9f551f28e9331af8bafeac067a719caf41ff4d6bce7cdebf9fb38/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f41492d3130302532352532306c6f63616c2d366335636537"&gt;&lt;img src="https://camo.githubusercontent.com/f93fae9225f9f551f28e9331af8bafeac067a719caf41ff4d6bce7cdebf9fb38/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f41492d3130302532352532306c6f63616c2d366335636537" alt="100% local"&gt;&lt;/a&gt; &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/959e9ffed0b6497d6db33d5b24b235fa5d974100d31e1f46fd5c7184b28f95df/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f636172642d776f726b732532306f66666c696e652d326538623537"&gt;&lt;img src="https://camo.githubusercontent.com/959e9ffed0b6497d6db33d5b24b235fa5d974100d31e1f46fd5c7184b28f95df/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f636172642d776f726b732532306f66666c696e652d326538623537" alt="Offline"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Why I built this&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;After a day at a screen, people often want to go outside but cannot think of a reason to start. Then a phone comes along and the walk turns into more scrolling. GrassQuest makes the screen the shortest part: make a card, print it, and leave the phone behind. The best outdoor tool is one you barely need to look at.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Features&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Generate eight safe, season- and place-aware outdoor tasks adapted to group, time, difficulty and accessibility notes.&lt;/li&gt;
&lt;li&gt;Download a self-contained printable HTML card or Markdown version.&lt;/li&gt;
&lt;li&gt;Save quests, tick off tasks, mark a walk done and remove old plans.&lt;/li&gt;
&lt;li&gt;After the walk, optionally check up to six photos with a local vision model and draft/edit a first-person journal.&lt;/li&gt;
&lt;li&gt;Export all journals as Markdown; load fictional demo…&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/vaibhavi897/grassquest" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


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

&lt;p&gt;&lt;strong&gt;The stack:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Model:&lt;/strong&gt; Gemma 3 (&lt;code&gt;gemma3:4b&lt;/code&gt;) running locally through &lt;strong&gt;Ollama&lt;/strong&gt;. It's multimodal, so one model writes the quests and reads the photos.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;UI:&lt;/strong&gt; Streamlit&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Storage:&lt;/strong&gt; SQLite for quests and journals, plus local photo files&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Validation:&lt;/strong&gt; Pydantic, with JSON-schema structured output for quests&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tests:&lt;/strong&gt; pytest, with the model mocked&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;How it works:&lt;/strong&gt; Quest generation asks Gemma for structured JSON (title, time estimate, 8 tasks with a category and a "why it's fun" hint). Pydantic validates it. If the JSON is invalid, the app retries once, then falls back to a tolerant text parser. The printable card is a single self-contained HTML file with no external fonts or scripts, so it prints cleanly and works offline. Photos are resized before they go to the model to keep vision fast on a laptop.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Safety is built into the prompts.&lt;/strong&gt; The system prompt forbids tasks that involve tasting or picking unknown plants, approaching or feeding wildlife, or going near roads, water edges and cliffs. Tasks only ask you to observe generic things, so the model never needs to claim facts about local wildlife.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I tested on the real model:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;[PASTE YOUR REAL RESULTS FROM THE AGENT'S NOTES, e.g. a table like this:]&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Check&lt;/th&gt;
&lt;th&gt;Result&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Quests generated with all 8 valid tasks&lt;/td&gt;
&lt;td&gt;[X of Y]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Safety rules respected&lt;/td&gt;
&lt;td&gt;[result]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Time per quest&lt;/td&gt;
&lt;td&gt;[X to Y seconds]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Photo check time per image&lt;/td&gt;
&lt;td&gt;[X seconds]&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;What went wrong:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;[Problem 1 and how you fixed it]&lt;/li&gt;
&lt;li&gt;[Problem 2 and how you fixed it]&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The vision model is a guesser.&lt;/strong&gt; [Describe what it got right and wrong on your real photos. Be honest here, because it makes the rest of the post believable.]&lt;/li&gt;
&lt;/ol&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;It works where there's no signal.&lt;/strong&gt; The card is printed, and generation runs on the laptop. Nothing needs a connection on the trail.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Photos stay private.&lt;/strong&gt; Your walk photos can show your neighbourhood, your kids, your route. With a local model, they never leave your device, and the app has no GPS or location APIs at all.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It costs nothing.&lt;/strong&gt; No API keys, no per-image vision billing, no subscription for a weekend walk.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The safety rules are mine to edit.&lt;/strong&gt; They live in one readable prompt file. If a quest ever feels unsafe, I change a rule. I don't wait on a vendor.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The model is swappable.&lt;/strong&gt; The model name is one setting, so a better open vision model can replace Gemma without rebuilding anything.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;&lt;strong&gt;Best Use of Gemma:&lt;/strong&gt; Gemma 3 runs locally through Ollama and does both jobs in the app: writing quests with structured output, and checking photos with vision.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Thanks to the DEV team for the challenge. Go touch some grass.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>StoryBank: I built a private MBA story journal for my friend, powered by Gemma</title>
      <dc:creator>Vaibhavi Pednekar</dc:creator>
      <pubDate>Sun, 04 Oct 2026 20:30:01 +0000</pubDate>
      <link>https://dev.to/vaibhavi_pednekar_a378c06/storybank-i-built-a-private-mba-story-journal-for-my-friend-powered-by-gemma-17bn</link>
      <guid>https://dev.to/vaibhavi_pednekar_a378c06/storybank-i-built-a-private-mba-story-journal-for-my-friend-powered-by-gemma-17bn</guid>
      <description>&lt;p&gt;&lt;strong&gt;StoryBank: I built a private MBA story journal for my friend, powered by Gemma&lt;/strong&gt;&lt;/p&gt;

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