Built for the Hacktoberfest Open-Source AI Challenge ā Week 1: Touch Grass. š±
What I built
Kokishin is an Android app that turns everyday outdoor details into small mysteries you solve by walking around and looking closely.
You photograph something odd: a worn bench, a dirt shortcut across the grass, moss on only one side of a wall. An on-device Gemma 4 model turns the photo into a case:
- a mystery question
- 2-3 possible explanations
- a real-world check for each one
Then you go outside, collect evidence (photos or notes), write a conclusion, and the AI critiques your reasoning. It never reveals the answer. It asks questions, suggests possibilities, and sends you back outside.
The idea comes from the everyday-mystery spirit of the anime Hyouka.
Why the screen should be the shortest part
Nature apps tell you what something is. Nothing helps you ask why it is that way, and answering that takes looking, walking and coming back later. That is a natural reason to touch grass.
So the app is built to get out of the way:
- One main action per screen.
- One "Your first check" card, with the other possibilities behind a tap.
- Every case records time spent investigating versus time on screen, and shows the split once you solve it.
Why open-source AI matters here
- Offline. It works in parks and on trails with no signal. After a one-time model download, the whole loop works in airplane mode.
- Private. Photos of your street and routes never leave the phone.
- Free. No API costs or rate limits, for you or for me.
- Controllable. I decide exactly how the model behaves, so it never spoils the answer. That rule lives in the prompts, not in a server I don't control.
There are no cloud calls at all. The only network use is downloading the model files on first launch.
How it's built
- Expo + React Native + TypeScript, Expo Router, as a development build (Expo Go can't load native modules like this).
-
llama.rnrunning Gemma 4 E2B (GGUF) plus its mmproj vision file, so the model can read the photo. -
expo-image-picker(camera only, no gallery),expo-image-manipulatorto shrink photos before inference,expo-file-systemfor the resumable model download. - Cases saved with AsyncStorage.
- Every prompt lives in one file,
src/ai/prompts.ts, and the model's JSON output is parsed with hand-written type guards. If parsing fails, it retries once and then returns a typed error instead of crashing. - The release APK is built with EAS Build.
Demo
Download the APK from here and install it on an Android phone (8 GB RAM recommended). The release APK is about 183 MB, and the app downloads the model files on first launch, so use Wi-Fi.
Code
ru-das
/
kokishin
Kokishin is an offline Android app that uses an on-device Gemma 4 model to turn everyday outdoor oddities into small mysteries you solve by going outside and gathering evidence. Built for the Hacktoberfest 2026 Open-Source AI Challenge: Week 1.
Kokishin
Turn everyday outdoor oddities into small mysteries, then go outside and solve them.
Kokishin is an Android app for the dev.to challenge Build something with open-source AI at its core (theme: Touch Grass). Photograph something odd, like a worn bench, a dirt shortcut or moss on one side of a wall. An on-device Gemma 4 model turns it into a case: a mystery question, 2-3 possible explanations, and a real-world check for each. You collect evidence outside, write a conclusion, and the AI critiques your reasoning. It never gives away the answer.
The screen is meant to be the shortest part of the experience. The app measures investigating time versus on-screen time for every case.
Screenshots
How it works
- Home: your saved cases and the "I'm curious!" button.
- New case: take a photo (camera only) and optionally say what caught your eye.
- Case:ā¦
Screenshots
| Home | Settings |
|---|---|
![]() |
![]() |
| New Case | Case |
|---|---|
![]() |
![]() |
What's next
I'd like to investigate why the APK is as large as it is (most likely the llama.rn native libraries), and add a custom icon and splash screen.
Prize Categories
- Best Use of Gemma: Gemma 4 E2B is Kokishin's only AI, and it runs entirely on the phone through llama.rn. Using its vision file (mmproj), it reads your photo of something odd and turns it into a case: a mystery question, 2-3 possible explanations, and a real-world check for each. Later it critiques your written conclusion. The rule is that the AI asks and suggests but never reveals the answer, and it works offline in airplane mode.









Top comments (1)
love that the no-spoilers rule lives in your prompt and not on a server. how slow is the photo step on a mid-range phone, since the mmproj encode is usually what eats the time before the first token?