<?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: Salugu Harshita Bhanu</title>
    <description>The latest articles on DEV Community by Salugu Harshita Bhanu (@salugu_harshitabhanu_d37).</description>
    <link>https://dev.to/salugu_harshitabhanu_d37</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%2F4161309%2F968dd3d4-2747-490e-9548-121ea14714d4.png</url>
      <title>DEV Community: Salugu Harshita Bhanu</title>
      <link>https://dev.to/salugu_harshitabhanu_d37</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/salugu_harshitabhanu_d37"/>
    <language>en</language>
    <item>
      <title>Sanpo 散歩: I built a local Japanese tutor from my phone gallery at midnight — no cloud, no walk needed</title>
      <dc:creator>Salugu Harshita Bhanu</dc:creator>
      <pubDate>Mon, 12 Oct 2026 06:38:19 +0000</pubDate>
      <link>https://dev.to/salugu_harshitabhanu_d37/sanpo-san-bu-i-built-a-local-japanese-tutor-from-my-phone-gallery-at-midnight-no-cloud-no-walk-573k</link>
      <guid>https://dev.to/salugu_harshitabhanu_d37/sanpo-san-bu-i-built-a-local-japanese-tutor-from-my-phone-gallery-at-midnight-no-cloud-no-walk-573k</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'm in my final year of B.Tech. Next year I move to Japan for my first job, and somewhere between the offer letter and the packing list I realised I'm about to leave behind the places that made me — Vizag's beaches, Araku valley mornings, the smell of home.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sanpo (散歩, "a stroll")&lt;/strong&gt; is a walking companion that runs entirely on my laptop. You take photos — from a real walk, or from your phone gallery at midnight — and a local Gemma 3 vision model turns what it sees into Japanese flashcards: the word, the hiragana reading, romaji, an example sentence, and a note on how that thing might feel different in Japan. At the end, it writes a short postcard from you to yourself, sealed until your first week in Japan.&lt;/p&gt;

&lt;p&gt;Everything — the AI, your photos, your letters — stays on your device. No cloud. No API key. No account.&lt;/p&gt;

&lt;p&gt;There's also a weather-based walk quest (Open-Meteo, no key needed), and a personal bucket list of places I want to see before I leave India — RK Beach, Araku Valley, Borra Caves, Dudhsagar Falls, Darjeeling...&lt;/p&gt;

&lt;p&gt;I couldn't go outside — it was midnight. So I used what I had: a rainy windshield from a monsoon drive, my room with Diwali string lights and a suitcase in the corner, a yellow rose, an idli-dosa thali, my boots, and a piece of art I love. The model found words in all of them.&lt;/p&gt;

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

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/NAZwhDZAzXQ" width="710" height="399"&gt;
  &lt;/iframe&gt;
&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/Git-brintsi20" rel="noopener noreferrer"&gt;
        Git-brintsi20
      &lt;/a&gt; / &lt;a href="https://github.com/Git-brintsi20/Sanpo" rel="noopener noreferrer"&gt;
        Sanpo
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      A bit of something Before I leave here and begin Again .
    &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;Sanpo 散歩 — Before I Go&lt;/h1&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;A local-first walking companion for learning Japanese through what you see.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/Git-brintsi20/Sanpo/./screenshot.png"&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%2FGit-brintsi20%2FSanpo%2FHEAD%2F.%2Fscreenshot.png" alt="Sanpo screenshot placeholder"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I'm a final-year student in Bhopal, moving to Japan next year. This app turns a walk into Japanese flashcards and a postcard to my future self — all running 100% on my laptop, no internet required after setup.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;What it does&lt;/h2&gt;
&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Photo → Japanese Cards&lt;/strong&gt; — Upload walk photos; a local Gemma vision model picks 3 objects and returns Japanese word cards with hiragana, romaji, an example sentence, and a note on how the thing might feel in Japan. Hit 🔊 to hear the pronunciation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Postcard to Future Me&lt;/strong&gt; — At the end of a walk, write a short letter to yourself in your first week in Japan. Seal it with a date; it shows as an envelope with a countdown until then.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Weather Quest&lt;/strong&gt; — Fetches Bhopal's current weather (Open-Meteo, no key)…&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Git-brintsi20/Sanpo" 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;ul&gt;
&lt;li&gt;
&lt;strong&gt;Model:&lt;/strong&gt; Gemma 3 4B (vision), served locally by &lt;strong&gt;Ollama&lt;/strong&gt;. Everything runs on CPU — 32 GB RAM, no GPU.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;App:&lt;/strong&gt; Next.js 14 (App Router) + TypeScript + Tailwind CSS. Three API routes call Ollama at &lt;code&gt;localhost:11434&lt;/code&gt; — vision analysis, postcard writing, and weather quests.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Speed:&lt;/strong&gt; On CPU, gemma3:4b took between &lt;strong&gt;10.4s and 65s&lt;/strong&gt; per photo. Simple images (boots: 10.4s, food: 13.7s) were fast. Complex ones (room with Diwali lights: 65.3s) took longer. Client-side resize to 768px before sending was the biggest single speed win.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Extras:&lt;/strong&gt; Open-Meteo for weather (no key), Web Speech API for &lt;code&gt;ja-JP&lt;/code&gt; pronunciation, localStorage for all walks and postcards. Zero external dependencies for AI.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;12B model:&lt;/strong&gt; Didn't have disk space for gemma3:12b (~8 GB needed). Ran everything on 4B — for everyday objects, it was more than enough.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What actually went wrong:&lt;/strong&gt; Two real mistakes. A rainy windshield photo returned &lt;strong&gt;あられ (arare)&lt;/strong&gt;, labeled "Raindrops" — but あられ means &lt;em&gt;hailstones&lt;/em&gt;. Raindrops are 雨粒 (amatsubu). And a yellow food plate returned &lt;strong&gt;ヒマワリ (himawari)&lt;/strong&gt; labeled "Marigold" — himawari means &lt;em&gt;sunflower&lt;/em&gt;. The model saw yellow, guessed flower, got both the word and the English wrong. I kept them in. That's honest.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The postcard Gemma wrote me&lt;/strong&gt; (sealed until 12 October 2027):&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"It's strange, isn't it? This morning walk felt so familiar, even though I'm so far from Vizag. I spent a while just appreciating the bara and ha — the cherry blossoms and leaves. I learned words like arare, Iruminēshon, and Suitukēsu. I'm feeling a little quiet and wishful, a little homesick perhaps. It's a lot, but I'm trying to be patient. — You, today"&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It hallucinated a lake. But the homesick part it got exactly right.&lt;/p&gt;

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

&lt;p&gt;A postcard to my future self is about as personal as data gets. With an open-weight model running locally, my photos and letters never leave my laptop. I don't pay per token for something I want to reread in a year.&lt;/p&gt;

&lt;p&gt;It also runs on weak hardware with no internet after setup. The model is honest about being small — it mistakes hailstones for raindrops — and somehow that feels more trustworthy than a polished API that hides its errors.&lt;/p&gt;

&lt;p&gt;These are the memories that will keep me company when I feel lonely in Japan one day, missing home. Building something that holds them felt right.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Best Use of Gemma&lt;/li&gt;
&lt;/ul&gt;

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