This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass
LevelOut turns learning a real skill into a leveling anime.
You know the trope: a weak hero gets chosen by a mysterious System that hands out daily quests, and every completed quest makes them stronger. I wanted that feeling for real life, with the quests happening outside.
- Pick a skill. Football, cricket bowling, badminton footwork, skipping, a 5K, or type anything.
- Tell the System what you have: a wall, stairs, water bottles, a ball, or nothing at all.
- Take the trial. The open-weight model writes 6 questions for your skill, including an injury check.
- Awaken. You get a rank (E to S), a title like E-Rank Striker, five stats (STR / AGI / VIT / SKL / FOC), a 30-day goal, a rank-up test and a weekly plan.
- Daily Quest. Warm-up, drills, cool-down, bonus. Every drill works alone, outdoors, with only the things you said you have.
- Pocket your phone. Accepting the quest starts a timer and tells you to go.
- Report back. Rate each drill Easy / Just right / Hard / Hurt / Skipped. You earn XP, stats and levels, and the next quest adapts. Drills that hurt are replaced with gentler ones for a different body part.
To rank up you have to pass a real-world test the System set for you, such as "juggle 25 times in a row". The game only moves when you do.
Demo
đź”— Try it live: https://levelout.onrender.com
Code
⚔️ LevelOut
Train outside. Level up for real.
LevelOut turns learning a real skill into a leveling anime. An open-weight AI model plays the System: it tests you, assigns you a rank, and gives you a Daily Quest of outdoor drills you can do alone, with little or no equipment. Complete it, report back, and you gain XP, stats and levels, while the System adapts tomorrow's quest to how you actually did.
Built for the MLH Ă— DEV Hacktoberfest Open-Source AI Challenge, Week 1: "Touch Grass".
How it plays
- Accept the System. "You have met the conditions to become a Player."
- Choose your path. Pick any skill (football, cricket bowling, badminton footwork, skipping, a 5K, parkour, anything) and tick what you have: a wall, stairs, water bottles, a ball, a bench, or nothing at all.
- The trial. The model writes 6 assessment questions for your skill, including…
How I Built It
LevelOut runs an open-weight model, and it can run that model locally too.
-
Open-weight model: the System runs on gpt-oss-120b, an open-weight model (Apache 2.0), served by Groq through its OpenAI-compatible API and called with the open-source
huggingface_hubclient. Any open model works: Qwen through Hugging Face Inference Providers is built in, and Llama, Gemma or Mistral are one environment variable away. -
Local inference (optional): set
LLM_BASE_URLto an Ollama, llama.cpp or vLLM server and the same app runs entirely on weights you host yourself, with no code changes.
The open model isn't decoration. It is the game master. Without it there is no trial, no rank, no quest and no adaptation. It does three jobs, each with a strict JSON contract:
| Step | What the open model does |
|---|---|
| Trial | Writes level-check questions specific to the chosen skill |
| Awakening | Rates the Player honestly (most people start at E or D), sets stats, a 30-day goal, a rank-up test and a 7-day plan |
| Daily Quest | Designs drills from the Player's own equipment, then adapts them using the last report. Drills that hurt are replaced. |
The game maths (XP curve, levels, rank gates, streaks, penalty quests) is deterministic JavaScript in the browser, so the model can't "inflate" your progress. You only level up by doing the drills.
Why Does Open Innovation Matter?
-
Your training data stays yours. Fitness and injury answers are personal. Because the System is an open-weight model, you can run the exact same app on your own machine or server with
LLM_BASE_URL, and nothing leaves it. - No lock-in. The model is a setting, not a dependency: gpt-oss today, Qwen, Llama or Gemma tomorrow, on any host or none.
-
Anyone can audit the coach. The prompts (
prompts.py) and the model weights are both public, so you can see exactly why the System gave you a drill, and change it if it's wrong for you. - Free to run. Open models on free hosts, or on your own hardware, mean a student can use a personal coach without a subscription.
Prize Categories
Render. LevelOut is deployed on Render's free tier from a render.yaml Blueprint in the repo, so anyone can fork it and get their own System running in a few clicks: Render reads the build and start commands, pins Python, sets the open-model settings, and only asks you to paste your own API key, which never touches the repo. Two choices were shaped by running it as a public Render service: a 120-second gunicorn timeout, because reasoning models like gpt-oss can think for a while before answering, and a per-visitor limit on AI calls so a public link can't drain the key's free quota.
Built with Flask, vanilla JS, and the open-weight gpt-oss-120b model served by Groq. MIT licensed.

Top comments (0)
Some comments may only be visible to logged-in visitors. Sign in to view all comments.