What if AI could help us spend less time staring at screens and more time exploring the world?
That's the idea behind Ruta Viva AI, an AI-powered outdoor adventure platform that transforms ordinary walks into interactive missions. Instead of spending more time scrolling, users can discover their surroundings, complete real-world challenges, and earn XP while exploring nature and local culture.
The goal is simple: make the screen the shortest part of the adventure.
What I Built
Ruta Viva AI turns going outside into a game.
Users choose their preferred adventure type, difficulty, and duration. The application then selects an adventure containing missions designed to encourage real-world exploration.
Adventure categories include:
🌳 Nature: Observe plants, discover patterns, identify colors, and listen to the sounds around you.
🏛️ Culture: Explore architecture, public art, and interesting details in your community.
🚶 Walking: Turn an ordinary walk into a sequence of small challenges.
🎲 Surprise: Let the adventure system choose an unexpected exploration experience.
Each adventure includes missions, descriptions, and experience points (XP). The idea is to give people a reason to step outside, pay attention to their surroundings, and turn everyday activities into memorable experiences.
The project is designed for curious people who want to explore their communities, enjoy the outdoors, and make their walks more engaging.
Demo
Try the deployed application:
Live application: https://ruta-viva-ai-hbdn.vercel.app/
Backend API: https://ruta-viva-ai-backend.onrender.com/
Interactive API documentation: https://ruta-viva-ai-backend.onrender.com/docs
The frontend is deployed on Vercel, and the FastAPI backend is deployed on Render.
Adventure Results
After each adventure, Ruta Viva AI displays the distance traveled, time spent exploring, and XP earned, giving users a clear overview of their progress and achievements.
Badges and Rewards
Based on their adventure achievements, users can earn badges to celebrate their progress and build their personal collection. Each badge encourages them to keep exploring, complete new missions, and reach new milestones.
Code
GitHub repository: https://github.com/Ezequie1Sc/ruta-viva-ai
The project is organized into a frontend and a backend:
Frontend: Angular and TypeScript.
Backend: Python and FastAPI.
Adventure catalog: A structured JSON file containing predefined adventures and missions.
AI integration: OpenRouter with a configurable model.
Deployment: Vercel and Render.
The code is structured so that the adventure catalog, selection logic, and AI provider integration can evolve independently.
How I Built It
I built Ruta Viva AI using Angular for the frontend and FastAPI for the backend.
Initially, the AI was responsible for generating an entire adventure, including its title, description, missions, and XP rewards. However, waiting several minutes for a generation was not a good experience for an application designed to encourage people to go outside.
I rethought the architecture and introduced a hybrid approach.
- A structured adventure catalog
Instead of generating every mission from scratch, the application maintains a JSON catalog of predefined adventures.
Each entry includes an identifier, adventure type, difficulty, title, description, missions, and XP rewards.
This gives the application a consistent source of content and makes it easier to validate adventure data.
- AI as the decision-making layer
The AI receives the user's preferences and a filtered list of candidate adventures. Its job is to select the most appropriate option instead of writing every mission from scratch.
Python filters the catalog by adventure type and difficulty before sending relevant candidates to the model. This reduces unnecessary context and the amount of generation required.
- A Python fallback
An external AI provider can be slow, unavailable, or rate-limited. To make the experience more resilient, the backend can select an adventure locally when the AI call fails or times out.
This means the application can still return a valid adventure even when the external model cannot provide a selection.
- Open-source AI and Ollama
One of my goals is to keep the AI layer flexible rather than tying the project to a single proprietary model or provider.
The current deployed implementation uses OpenRouter for hosted inference and supports a configurable model identifier. This makes it easier to experiment with different compatible models.
I am also interested in Ollama, which provides a practical way to run supported open-weight models locally. A local Ollama integration is a natural next step for Ruta Viva AI, allowing the project to explore local inference without requiring every AI request to go through a hosted provider.
Local inference is not currently part of the deployed version, but the separation between the catalog, selection logic, and AI service provides a foundation for adding it.
Why Does Open Innovation Matter?
Open innovation matters because AI-powered applications should be adaptable, inspectable, and open to experimentation.
For Ruta Viva AI, separating the AI provider from the adventure system makes it easier to change models, compare their behavior, and explore alternative deployment strategies.
Using a structured catalog also means that the application does not depend entirely on a model to create every piece of content. The missions can be reviewed, improved, and expanded independently of the AI provider.
Exploring Ollama and open-weight models could also make local inference possible in a future version. That would provide more control over where inference runs and could reduce dependence on an external service, although hardware requirements and model licenses would still matter.
There is an important distinction in the current implementation: the application uses hosted inference through OpenRouter, so it requires an internet connection for AI selection. The local Python fallback can still select from the catalog if the provider fails, but that does not mean the entire application currently runs offline.
For me, open innovation is about preserving the freedom to experiment and improve the system rather than building the entire experience around a single AI provider.
My Agent Session
I used AI-assisted development to explore the architecture, improve the generation workflow, and implement the JSON catalog and fallback selection.
Prize Categories
This project is submitted to the Hacktoberfest Open-Source AI Challenge — Week 1: Touch Grass.
What's Next?
There is still plenty I want to improve:
Integrate an optional local inference provider using Ollama.
Improve response times and measure AI selection latency.
Expand the adventure catalog with more varied missions.
Improve duration-aware selection so adventures better match the time users have available.
Develop GPS-based progress tracking and outdoor discovery features.
Continue improving the mobile experience.
Final Thoughts
Building Ruta Viva AI reminded me that AI does not always need to create more screen time. It can also help people step away from their devices and engage with the physical world.
Sometimes, the best technology is the kind that gives you a reason to put your phone away.
Build with AI. Explore the real world. Touch grass. 🌿
Thanks for checking out Ruta Viva AI!






Top comments (0)