{"slug": "ai-nature-quest-i-built-an-ai-that-wants-you-to-stop-using-it", "title": "🌿 AI Nature Quest: I Built an AI That Wants You to Stop Using It", "summary": "A developer built AI Nature Quest, an open-source, mobile-first Progressive Web App that uses AI to generate real-world outdoor quests and then instructs users to put their phones away while they complete them. The app evaluates submitted evidence, awards XP, and logs discoveries in a private Nature Journal, and it ships with a deterministic Demo AI provider for zero-configuration use plus a real Gemma provider for open-weight inference. The developer tested it with a friend, who won the generated objectives, and released the project under the MIT License.", "body_md": "*This is a submission for the [Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass](https://dev.to/challenges/hacktoberfest-week1-2026-10-05)*\n\n**What** if the best AI experience was one that made you close the app?\n\nMost AI products are designed to keep you on a screen. More messages. More recommendations. More scrolling.\n\nI wanted to build the opposite.\n\nSo I built **AI Nature Quest**, an open-source outdoor adventure game where AI creates a real-world quest, tells you to put your phone away, and waits for you to come back.\n\n**AI generates the adventure. You go live it.**\n\nThe goal is simple: make the screen the shortest part of the experience.\n\n**Live Demo:** [https://ainaturequest.netlify.app/](https://ainaturequest.netlify.app/)\n\n**GitHub:** [https://github.com/extinctsion/ainaturequest](https://github.com/extinctsion/ainaturequest)\n\n**Challenge:** [https://dev.to/challenges/hacktoberfest-week1-2026-10-05/](https://dev.to/challenges/hacktoberfest-week1-2026-10-05/)\n\n**AI Nature Quest** turns an ordinary walk into a small outdoor adventure.\n\nYou choose:\n\nThe AI then creates a quest with objectives such as:\n\nThen comes the most important part.\n\nThe app tells you:\n\n**Your phone is no longer needed.**\n\nPut it away.\n\nGo explore.\n\nCome back when you're ready.\n\nThis is the feature I cared about most.\n\nOnce a quest starts, the interface becomes intentionally minimal. Instead of giving the user another feed to scroll, it gives them a timer and one instruction:\n\n**Put your phone away.**\n\nThe timer persists, so the user can actually leave the phone in their pocket and come back later.\n\nWhen the adventure is over, the user returns and submits evidence.\n\nThey can provide:\n\nThe AI evaluates the evidence, awards XP, and completes the quest.\n\nCompleted discoveries can then be saved to a private Nature Journal.\n\nThe result is a simple loop:\n\n```\nGenerate\n   ↓\nGo outside\n   ↓\nPut phone away\n   ↓\nExplore\n   ↓\nReturn\n   ↓\nSubmit evidence\n   ↓\nEarn XP\n   ↓\nDiscover more\n```\n\nThat loop is the product.\n\nI think we have a strange relationship with AI right now.\n\nWe keep asking:\n\n\"How can AI help me spend more time with technology?\"\n\nI wanted to ask the opposite question:\n\n**\"How can AI help me spend less time with technology?\"**\n\nNature already has the content.\n\nThe park, street, garden, trees, birds, sounds, weather, and tiny things we normally walk past are the game world.\n\nAI simply becomes the game master.\n\nThat distinction matters.\n\nThe goal isn't to make someone spend an hour interacting with an AI.\n\nThe goal is to spend five minutes interacting with the app and the next 55 minutes interacting with the real world.\n\nI didn't want this to remain a browser experiment.\n\nI shared the application with a friend and we actually went outside and tried it together.\n\nWe both used the application and competed on the generated objectives.\n\nAnd there is a funny part to the story:\n\n**My friend won.**\n\nBut I still considered that a win.\n\nBecause the application I built with AI assistance actually got another person outside, walking around, looking at their surroundings, and competing in the real world.\n\nThat was the most important test for me.\n\nThe application didn't need to win the game.\n\nIt needed to get us out the door.\n\n**Live demo:** [https://ainaturequest.netlify.app/](https://ainaturequest.netlify.app/)\n\nThe public demo can be used without creating an account.\n\nThe zero-configuration demo experience uses the deterministic Demo AI provider so anyone can try the complete product without an API key.\n\nThe project also includes a real Gemma provider for open-weight AI inference.\n\nThe project is open source under the MIT License.\n\nThe application is built as a mobile-first Progressive Web App using:\n\nThe architecture separates the product experience from the model implementation.\n\n```\n                         AI Nature Quest\n                                |\n                           AIProvider\n                                |\n                  +-------------+-------------+\n                  |                           |\n            DemoAIProvider              GemmaAIProvider\n                  |                           |\n          Deterministic AI             Open-weight Gemma\n          for zero-config demo         via local inference\n```\n\nThe application talks to an `AIProvider` interface rather than directly to a particular model.\n\nConceptually:\n\n```\ninterface AIProvider {\n  generateQuest(input: QuestRequest): Promise<Quest>;\n  evaluateEvidence(input: EvidenceRequest): Promise<EvidenceResult>;\n}\n```\n\nThat means the quest UI doesn't care whether the response came from the deterministic demo provider or Gemma.\n\nIt just receives a validated `Quest`.\n\nThe same applies to evidence evaluation.\n\nThe Demo provider exists for a practical reason.\n\nI wanted someone to be able to clone the repository, run:\n\n```\nnpm install\nnpm run dev\n```\n\nand immediately experience the entire product without needing an API key, GPU, model download, or external service.\n\nIt also makes the application reliable for the public hosted demo.\n\nBut the project does not stop there.\n\nThe real AI path uses Google's open-weight Gemma family.\n\nGemma is used as the game master for quest generation and as the naturalist evaluator for submitted evidence.\n\nFor local inference, the project can connect to Gemma through Ollama.\n\nA local setup looks like:\n\n```\nollama pull gemma3:4b\n```\n\nThen configure:\n\n```\nAI_PROVIDER=gemma\nAI_MODEL=gemma3:4b\nAI_API_URL=http://localhost:11434\n```\n\nThe provider architecture keeps this separate from the rest of the application.\n\nFor evidence involving images, a multimodal Gemma model can inspect the submitted image and return a structured evaluation.\n\nThat creates a much more interesting interaction than simply asking an LLM to generate text.\n\nThe model is participating in the game loop.\n\nI didn't want model output to directly control the UI.\n\nQuest generation is validated into a structured schema.\n\nFor example:\n\n```\n{\n  \"title\": \"The Hidden Naturalist\",\n  \"description\": \"Explore your surroundings and notice what you normally walk past.\",\n  \"durationMinutes\": 30,\n  \"difficulty\": 3,\n  \"objectives\": [\n    {\n      \"title\": \"Leaf Detective\",\n      \"description\": \"Find three visibly different leaf shapes.\",\n      \"evidenceType\": \"photo\",\n      \"xp\": 50\n    }\n  ],\n  \"totalXp\": 250,\n  \"phoneAwayMinutes\": 25\n}\n```\n\nEvidence evaluation follows the same principle.\n\nThe model returns structured information such as:\n\n```\n{\n  \"completed\": true,\n  \"confidence\": 0.91,\n  \"feedback\": \"The image appears to contain three visibly different leaf shapes.\",\n  \"xpAwarded\": 50\n}\n```\n\nThe application validates the result before using it.\n\nThis makes the model replaceable and reduces the amount of model-specific logic leaking into the UI.\n\nThis project is a particularly good example of where open AI changes the product design.\n\nIf I had built this entirely around a closed API, the model would effectively become another remote service dependency.\n\nInstead, the AI provider is replaceable.\n\nThat gives the project several important properties.\n\nWith Gemma running locally, the user can run the AI on their own machine.\n\nThat matters for an application dealing with photos of people's surroundings.\n\nThe architecture doesn't require every piece of evidence to be sent to a centralized AI service.\n\nThe product doesn't fundamentally depend on one model vendor.\n\nToday:\n\n```\nGemma\n```\n\nTomorrow:\n\n```\nAny AI model as per preference\n```\n\nThe product layer doesn't need to be rewritten.\n\nBecause the model layer is open and replaceable, developers can experiment with:\n\nThat is especially valuable for a project where the AI behavior is part of the game mechanics.\n\nThe project is intentionally designed around local-first storage.\n\nThere is no account requirement.\n\nThe Nature Journal is stored locally.\n\nAnd with local Gemma inference, the model can also run locally instead of requiring a remote AI API.\n\nThe important point is not that open AI automatically makes everything private.\n\nIt is that **open infrastructure gives the developer control over where inference happens and what happens to the user's data.**\n\nA local open-weight model can remove API costs from the development loop.\n\nThat makes it much easier to repeatedly test prompts, quest generation, evidence evaluation, and model behavior.\n\nFor an experimental project like this, that matters.\n\nThere is one metric I deliberately don't want to optimize.\n\n**Screen time.**\n\nMost consumer applications measure success by how long someone stays inside the application.\n\nAI Nature Quest measures success by whether the user leaves it.\n\nThat creates a funny product philosophy:\n\n**The better you use the app, the less time you spend using it.**\n\nThe AI creates the quest.\n\nThe human experiences it.\n\nThe phone waits.\n\nAn AI naturalist shouldn't pretend to be a scientific authority.\n\nThe application therefore avoids instructions involving:\n\nThe application also reminds users to stay on safe/public paths and respect wildlife.\n\nThe purpose is observation, not risk-taking.\n\nAI Nature Quest does not require:\n\nThe Nature Journal and progression data are stored locally.\n\nDemo mode does not need an external AI API.\n\nWhen using local Gemma inference, AI processing can happen against the user's configured local inference endpoint.\n\nThe project is intentionally designed so that privacy is not an afterthought.\n\nThe biggest lesson wasn't about Next.js or AI APIs.\n\nIt was about product design.\n\nWhen I started building this, it would have been easy to add:\n\nInstead, I kept coming back to one question:\n\n**Does this feature help someone get outside?**\n\nIf the answer was no, it probably didn't belong in the MVP.\n\nThat constraint made the product better.\n\nIt also made the AI more interesting.\n\nThe AI isn't the destination.\n\nIt is the trigger.\n\nI built the project using **Antigravity and VS Code**, with AI-assisted development through the development workflow.\n\nI also used **GitHub Copilot** during development.\n\nAI-assisted coding helped me move quickly, but the product decisions remained centered around the real-world behavior I wanted to create.\n\nThe most important test wasn't:\n\n\"Can AI build the application?\"\n\nIt was:\n\n**\"Can the application get someone to put the phone down?\"**\n\nI tested that with a real friend.\n\nAnd even though my friend beat me at the quest, the experiment worked.\n\nI am entering:\n\nGemma is used as the open-weight AI provider for quest generation and evidence evaluation.\n\nGitHub Copilot was used as part of the development workflow.\n\nThere are a lot of directions this could go.\n\nSome possibilities:\n\nBut I don't want to lose the original idea.\n\nThe application should always work toward the same outcome:\n\n**less screen, more world.**\n\nWe are building increasingly powerful AI systems that can generate almost anything on a screen.\n\nMaybe one of the most useful things an AI can generate is a reason to stop looking at that screen.\n\nAI Nature Quest is my attempt at that.", "url": "https://wpnews.pro/news/ai-nature-quest-i-built-an-ai-that-wants-you-to-stop-using-it", "canonical_source": "https://dev.to/extinctsion/ai-nature-quest-i-built-an-ai-that-wants-you-to-stop-using-it-56g6", "published_at": "2026-10-06 18:38:34+00:00", "updated_at": "2026-10-06 18:48:31.475431+00:00", "lang": "en", "topics": ["ai-products", "generative-ai", "ai-tools", "developer-tools"], "entities": ["AI Nature Quest", "Gemma", "GitHub", "Netlify", "Hacktoberfest"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/ai-nature-quest-i-built-an-ai-that-wants-you-to-stop-using-it", "markdown": "https://wpnews.pro/news/ai-nature-quest-i-built-an-ai-that-wants-you-to-stop-using-it.md", "text": "https://wpnews.pro/news/ai-nature-quest-i-built-an-ai-that-wants-you-to-stop-using-it.txt", "jsonld": "https://wpnews.pro/news/ai-nature-quest-i-built-an-ai-that-wants-you-to-stop-using-it.jsonld"}}