What I Built
TrailMate AI is an open-source, offline-first outdoor companion designed to help people spend less time looking at a screen and more time exploring the real world.
The idea is simple:
Take TrailMate with you, go outside, and let local AI help you understand what you discover.
TrailMate currently provides:
- π· Nature identification using an open-weight vision model
- π€ Local AI analysis through Ollama
- π GPS trail tracking
- π Distance tracking
- π Nature Journal for saving discoveries
- π΄ Offline-first trail and journal functionality
- π Local browser storage for observations and trail data
It is designed for hikers, nature explorers, students, photographers, and anyone who wants to learn more about the environment around them.
For example, while hiking, I can take a photo of a plant or other outdoor subject and ask TrailMate to analyze it. I can then save the observation together with its location and continue my hike.
The goal is for the screen to be the shortest part of the experience.
Demo
π§ Live demo coming soon.
The project can currently be run locally with:
cd frontend
npm install
npm run dev
and the local AI backend with:
cd backend
pip install -r requirements.txt
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
The AI runs through a local Ollama installation.
I am also working toward an outdoor demonstration where TrailMate is taken on an actual trail and used to record observations and track the walk.
Code
GitHub
TrailMate AI
AdeeSL
/
WildLens-AI
TrailMate AI is an open-source, offline-first outdoor companion designed to help people spend less time looking at a screen and more time exploring the real world.
The repository contains the complete source code, including:
trailmate-ai/
β
βββ frontend/ # React + Vite PWA
βββ backend/ # FastAPI API
βββ .github/
β βββ workflows/ # GitHub Pages deployment
βββ docker-compose.yml
βββ LICENSE
βββ README.md
The project is released under the MIT License.
How I Built It
TrailMate is built around the idea that AI does not always need to live in the cloud.
π§ Open-weight AI
The AI layer uses Ollama to run a local vision-capable open-weight model.
For the initial MVP, the default model configuration is:
gemma3:4b
The model can be changed without redesigning the application.
The flow is:
π· Photo
β
React PWA
β
FastAPI
β
Ollama
β
Open-weight Vision Model
β
Structured Nature Information
β
π± TrailMate
The model returns information such as:
- Possible identification
- Scientific name
- Confidence
- Description
- Visual field marks
- Safety information
- Suggested next observation
π₯οΈ Frontend
The frontend is built with:
- React
- Vite
- Progressive Web App architecture
- Browser Geolocation API
- LocalStorage
- Responsive/mobile-first UI
βοΈ Backend
The backend uses:
- Python
- FastAPI
- HTTPX
- Ollama API
π Outdoor features
GPS coordinates are collected through the browser's Geolocation API.
Trail points are stored locally and used to calculate approximate walking distance.
Nature observations are also stored locally in the browser.
Why Does Open Innovation Matter?
This is the most important part of TrailMate.
A typical AI nature application could work like this:
π· Photo
β
Internet
β
Cloud AI API
β
External Server
β
Result
That works, but it creates several problems for an outdoor application.
You may not have Internet connectivity.
You may not want to upload your photographs and location data.
And repeated AI API calls can introduce ongoing costs.
TrailMate takes a different approach:
π· Photo
β
Your environment
β
Local FastAPI
β
Ollama
β
Open-weight AI
β
Result
π Connectivity
Hiking trails don't always have reliable mobile coverage.
TrailMate's trail tracking and journal are designed to continue working when the browser is offline.
The AI architecture is also local, so the AI service does not inherently require a third-party cloud API.
π Privacy
Outdoor observations can contain more information than just a picture.
They can include:
- Location
- Time
- Photos
- Personal notes
- Places someone visits
With local inference, these observations don't have to be sent to a proprietary AI provider.
π Model freedom
The application is not designed around a single closed AI API.
The AI layer is separated from the application, making it possible to change the underlying model as open models improve.
π° Cost
There is no per-image cloud AI API charge when running the model locally.
Once the required model is downloaded, the AI can run on your own hardware.
π οΈ Community ownership
Because the project is open source, contributors can improve:
- AI model adapters
- Nature datasets
- Offline maps
- Trail features
- Accessibility
- UI
- Localization
- Bird identification
- Plant identification
The project can evolve with the community rather than being locked to one provider.
What's Next?
The current project is an MVP, but I want to take TrailMate further.
πΏ Planned features
- π΄ Fully device-local AI inference
- πΊοΈ Offline map tiles
- π¦ Bird-call identification
- π± Plant-specific identification
- π Nearby nature points
- π Trail elevation
- π€ GPX export/import
- π± Android version
- π Encrypted local journal
- π±π° Sri Lankan biodiversity support
The biggest next step is fully local device inference, so the ultimate experience can become:
βοΈ Airplane Mode ON
β
π₯Ύ Go Hiking
β
π· Take Photo
β
π€ Local AI
β
πΏ Discover Something
β
π Save Observation
β
π₯Ύ Keep Walking
No cloud AI required.
My Agent Session
Not included in this submission.
Prize Categories
- Open-Source AI
- Touch Grass / Outdoor Experience
- Local AI / Privacy-focused AI
Final Thought
AI doesn't always have to keep us in front of a screen.
I wanted to build something where AI is useful because it helps you leave the screen.
TrailMate's goal is simple:
Use AI to explore the world, not replace exploring it. πΏπ₯Ύ
Thanks for checking out TrailMate AI!
Top comments (0)