STRATUM: Excavating Civilizations That Never Existed
An archaeology game where every dig site is a procedurally generated civilization with its own history, artifacts, and a hidden mystery — guaranteed solvable by a code validator, never by trusting the AI.
Project status: In active development — the full dig → deduce → reveal loop is playable on device.
Infinite content, if you can trust it
Generative AI promises games infinite content. In practice it delivers infinite incoherence: plots that contradict themselves, puzzles with no solution, lore that falls apart on the second read. STRATUM is our attempt to solve that problem properly.
The premise: you are an archaeologist excavating civilizations that never existed. Each site is generated — its history, its artifacts, its inscriptions — around a hidden central mystery. You brush away soil, recover artifacts, pin evidence to a Chronicle Board, form hypotheses, and publish your findings. Then the game scores you against the truth.
The truth never ships to the device
The generation pipeline runs as a staged Django job. Each civilization is produced in phases — history, culture, artifacts, clues — with the output split into two documents: a client Manifest containing everything the player can discover, and a private truth file that stays on the server. The answer to the mystery is physically absent from your phone.
The trust anchor is a clue-graph validator: a pure-code, twelve-rule engine that checks every generated mystery for solvability and internal consistency before it ships. If the clues don't logically lead to the truth, the site is rejected and regenerated. Deterministic code gates non-deterministic AI — the model is a creative writer, never a referee.
- ● Production-grade LLM ops — immutable, versioned prompts with a promote-and-audit workflow, a provider abstraction with fallback cascade across Claude and Gemini, a cost ledger, quotas, and a response cache.
- ● No frameworks — direct SDKs and Pydantic-validated JSON — no LangChain, no agent frameworks. Fewer layers, fewer surprises.
- ● Engineering discipline — 148 tests at 94% coverage and a fully typed codebase, enforced at every phase gate.
Making digging feel physical
On the Godot side, the excavation itself had to feel tactile. The erosion mask is a CPU byte-buffer streamed into a texture — a workaround discovered the hard way, because GPU viewport accumulation doesn't persist reliably on Android's GLES translation layer. Brush strokes remove soil, artifacts emerge gradually, a lantern follows your brush, and artifacts have condition and care mechanics so reckless digging has consequences.
The deduction layer got the same treatment: the Chronicle Board is a red-string evidence board with a custom drag-scroll implementation, because stock touch scrolling breaks the moment a card captures the press. Small details, but they're the difference between a prototype and something that feels made.
Where it's going
The full loop — dig, deduce, publish, truth reveal — is already playable on real hardware. The v2 vision is the fun part: players will author their own civilizations through a conversational AI interview, bury them, and challenge friends to dig them up. Infinite content, player-created, still provably solvable.
Technology Stack
More from the build floor
WARFORGE
Mobile RTS games have always been crippled by touch controls. Our answer: an AI adjutant that executes spoken orders — parsed by a local LLM, validated by deterministic code, running entirely on your phone.
GamesSymbiont
A roguelike where you grow a living organism on a hex grid, and every cell's power depends on what surrounds it. Built with zero external assets — every visual drawn in code, every sound synthesized at runtime.
AI & AutomationLaunchPad
Launching a product means posting across dozens of communities and tracking everything in spreadsheets. LaunchPad models the entire launch lifecycle as data — and automates the posting, monitoring, and follow-up.