ChromaWild: A Local Gemma-Powered Color Walk
**This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass. What I built ** ChromaWild is a color walk and field journal. It gives you a color to look for outdoors, then lets
**This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass.
What I built
**
ChromaWild is a color walk and field journal. It gives you a color to look for outdoors, then lets you compare what you found, save field notes, and sketch the observation.
I wanted the prompts to work for the places people actually walk through. That can be a park, a sidewalk, a bus stop, a playground, a building, a piece of public art, a patch of sky, or a plant. It doesn't have to be a wilderness trail.
The color and subject are generated together by Gemma through Ollama. The app asks the model for a fresh, coherent prompt instead of picking a color from a fixed bucket and attaching a preset nature subject.
Demo
There isn't a hosted demo yet. The app runs locally; the repository README has the setup steps: github.com/sleepyaishik69/ChromaWild.
To generate quests locally, install Ollama, run ollama pull gemma2:2b, then start the app with npm run dev.
How it works
The browser handles color matching and keeps field entries, photos, sketches, and progress in its local storage. For a new quest, the Next.js API route asks Ollama for a title, color, subject, and outdoor hint, then checks the returned fields and hex value before using them.
The model prompt includes a broad subject list:
const categories = [
'plants', 'animals', 'water', 'sky', 'architecture', 'street',
'transit', 'public art', 'playgrounds', 'outdoor objects',
'sports', 'food', 'other',
];
The default model is configurable:
model: process.env.OLLAMA_MODEL || 'gemma2:2b',
format: 'json',
Here is the request path:
flowchart LR
Browser[ChromaWild in browser] -->|request a quest| Next[Next.js API route]
Next -->|prompt| Ollama[Local Ollama and Gemma]
Ollama -->|structured color quest| Next
Next -->|validated quest| Browser
Browser -->|color comparison and journal| Browser
The implementation is in the Gemma API route. The repo also has setup instructions, contribution and security notes, and a GitHub Actions workflow for linting, type checking, and building.
Why open models matter here
With Ollama, the default color-quest generation runs on the machine hosting the app. I can try a different Ollama model by changing configuration, without tying the core feature to a paid inference API. That makes local experimentation possible and keeps the default quest prompt on the local machine.
There are tradeoffs: users need to install Ollama and download a model, and generation speed depends on their hardware. The hosted-app setup is different: Ollama must be reachable from the server, and this project still needs API protections before a public deployment. Optional Groq evaluation and ElevenLabs speech use external services if configured.
The app's public GitHub repository is up, though I still need to choose a project license. I also want to take ChromaWild on an actual color walk and see which prompts are easy to find in an everyday neighborhood.
Prize category
ChromaWild appears to fit the Best Use of Gemma category because Gemma generates quests in the default setup. If the challenge has a separate category-entry step, I'll select it there.
Related reading
- How to Run LLMs Locally with Ollama β A Developer's Guide covers the local model setup behind this approach.
- Building Reliable LLM Applications in Python discusses validating structured model output and handling failuresβuseful practices across languages.
Originally published by Dev.to AI. Aggregated on AIWithGhost for educational purposes β full credit and traffic to the original publisher.