A browser-based, infinite procedural RPG where an LLM generates the world β skills, biomes, items, creatures, and art β on demand as you play.
You start stranded on an island with a single skill. Everything after that is discovered, and generated the first time anyone finds it.
Actions have a chance to unlock brand-new skills, generated on first discovery. Progression cascades outward forever.
Biomes, world objects, items, and creatures are generated on first contact and cached, so the world is persistent and shared.
Every world object gets its own 3D model, generated on demand and cached.
The overworld is an LLM-authored fantasy region map, generated once and extended as you sail past its edges.
Vanilla ES-module JavaScript + Three.js on the client; Python + FastAPI on the server.
Swap between Anthropic, OpenAI, or NVIDIA chat providers with a single line of config.
A thin Three.js client streams chunks from a FastAPI backend that orchestrates the LLM and caches every generation to disk.
webclient/ (Three.js) ββRESTβββΆ server/ (FastAPI + LLM) βββΆ worldData/ (JSON + GLB cache)


Python 3.10+ and an API key for one chat provider is all you need.
cp config.ini.example config.ini # add your API key(s)
pip install fastapi "uvicorn[standard]" "pydantic>=1.10,<2.0" requests
uvicorn server.main:app --reload --port 8000
cd webclient && python3 -m http.server 3000 # in another terminal
β οΈ It eats API tokens like Pac-Man eats dots. Everything you see is a live model call, and it generates constantly as you play. Do not point it at an API account with auto-reload or auto-recharge billing unless you genuinely do not care about the cost. Set a hard spending cap first.
Then open http://localhost:3000. Full instructions in the
setup guide.