This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass
I built TraiLens, a local Python tool that automatically generates a Markdown nature journal from your hiking photos using a local open-weight vision model.
Most outdoor apps require you to stare at your screen on the trail. TraiLens flips that: it encourages you to put your phone on airplane mode. You go outside, enjoy the trek, and simply snap photos of interesting plants, geology, or landscapes. When you get home, you drop the photos into a folder on your laptop. TraiLens runs them through an open-weight vision model and generates a beautiful, documented field diary of what you saw, complete with EXIF metadata extraction.
The screen time happens after the hike, not during it.
Here is TrailLens running locally and analyzing my photos completely offline:
And here is the beautiful field guide it automatically generates:
An offline-first, local-inference field naturalist journal built for the Hacktoberfest "Touch Grass" AI Challenge.
TrailLens eliminates screen time on the trail. Put your phone in airplane mode, hike screen-free, and take photos of flora, fauna, and geology. When you return, TrailLens processes your photos locally using Moondream via Ollama, extracting EXIF metadata and generating an automated Markdown field journal with zero cloud API dependencies.
ollama pull moondream
TrailLens is built in Python and relies entirely on local edge inference.
Instead of sending my photos to a paid cloud API, I used Ollama to run Moondream (a lightweight, highly capable open-source vision model). The Python script loops through a local directory of images, extracts the GPS and timestamp EXIF data using the Pillow library, and then prompts the local Moondream model to act as a master naturalist, identifying the flora and terrain. Finally, it compiles everything into a formatted Markdown file (TRAIL_JOURNAL.md).
This project only makes sense with open-source AI: