- TypeScript 52.8%
- Rust 37.3%
- JavaScript 6.5%
- CSS 3.1%
- HTML 0.3%
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai> |
||
|---|---|---|
| .github/workflows | ||
| assets | ||
| core | ||
| tools | ||
| web | ||
| .gitignore | ||
| AGENTS.md | ||
| Cargo.lock | ||
| Cargo.toml | ||
| decisions.md | ||
| LICENSE | ||
| PLAN.md | ||
| README.md | ||
Computus
A medieval-Europe innkeeping tycoon. You sit at a candlelit desk and keep the inn's computus (ledger) by quill, in Latin. Manage supplies, design dishes, tend your staff's humours, pay the guilds — and guard the innkeeper's mind, which a predatory "Sortes" lootbox will gladly unravel. Rust/WASM simulation core + Three.js, browser, 3D, all-diegetic UI. Black-comedy satire of gacha mechanics; the affliction is depicted straight, the gamification chrome is the joke.
About this project — an experiment
Computus is an experiment to test the limits of our current setup: GLM-5.2 as the planning/orchestrating model (this repo was built under the
gronkorchestrator role) and Grok as the implementer (via thegronk-coder/gronk-researcher/gronk-mediasubagents, which run Grok models). Nearly all of the code, research, and generated art here was produced by that pipeline with a human directing at the feature level — including the Rust/WASM simulation core, the Three.js diegetic UI, the Latin strings, and the Grok-image/video assets. The commit history andPLAN.mdreflect how that work was decomposed and delegated. Treat the result as a data point on what this orchestration arrangement can and can't do, not as a hand-finished product.
Prerequisites
- Rust (stable) with the
wasm32-unknown-unknowntarget (on Arch:rust-wasm) - wasm-pack 0.15+
- Node.js 20+ and npm
Run (dev)
cd core && wasm-pack build --target bundler --out-dir ../web/pkg --out-name core
cd ../web && npm install && npm run dev
Open the URL Vite prints. (Production build: cd web && npm run build, then npm run preview.)
How to play
You are the innkeeper. Goal: survive 14 days without going bankrupt. Score is your denarii. The whole game is the desk world — there is no HTML UI except a hidden typing field. Move the mouse to move your hand.
The Ledger (left paper — primary interface). Click the bottom writing line to take up the quill, type a command, press Enter. First pick a category from the left-margin tabs:
| Category (tab) | What writing does | Example |
|---|---|---|
| Provisiones | order supplies: <item> <qty> |
Panis 6 |
| Mercedes | give a staff bonus (Donativum): +morale, once/day | (anything) |
| Census | pay guild dues: <guild> |
coquorum |
| Candelae | order tallow candles: <n> |
5 |
| Remedia | buy a remedy: <name> |
herbae |
| Recepta | record income: <item> <amount> |
donum 20 |
Items: Panis (bread), Caro (meat), Cervisia (ale), Vinum (wine), Piscis (fish), Sal (salt), Granum (grain), Herbae (herbs), Cera (wax), Sebum (tallow). Guilds: coquorum, brasiatrum, mercatorum, cauponum, rasorum.
The Candle (top-right). Burns in real time; working in darkness raises the innkeeper's stress. Click a lit candle to order more (×5 tallow); click an extinct candle to relight (uses a spare). The snuffer (brass cone) extinguishes it.
The Codex (right panel — tabs):
- Cellarium — your stock.
- Familia — your staff (morale, humour, wage); button pays wages.
- Gilda — the guilds; join or pay dues.
- Libellus — your menu. Design a new dish: click ingredient tokens to add them, click the name field and type a name, then click Serva.
- Anima — the innkeeper's mind: the Curae (stress) meter, active afflictions (the debuffs, shown straight), the Sortes lootbox (25 denarii — promised relief that mostly worsens things), and Remedia (Sanguisatio / Herbae / Oratio).
The Mind (the gacha). Stress rises from debt, darkness, and lost custom. At each threshold you "draw" an affliction — announced as a garish achievement/skin/collectible toast (the satire) but applied as a real debuff (melancholia dulls appeal, phlegma saps service, cholera saps morale, sanguine excess invites reckless spending). The Sortes lootbox is the predatory loop; remedies counteract it.
Props: the red seal stamp saves; the iron strongbox loads.
Status
- Core loop playable and balanced (economy tuned so decent play thrives; afflictions remain a threat). Win/lose (survive 14 days / bankrupt).
- All in-world text is medieval-vulgate Latin; uncertain strings are flagged
_qainassets/latin/strings.jsonfor a Latin reviewer. - Typed input (keyboard) for now — Gothic-textura handwriting recognition is planned but not yet wired.
- Save/load:
localStoragekeycomputus-save. - Deterministic seeded RNG (auditable gacha odds; replayable saves).
- 41 Rust unit/integration tests + a multi-day balance simulation.
See PLAN.md for the phased roadmap and decisions.md for locked design decisions.
License
Code is licensed under the GNU General Public License v3.0 (LICENSE; SPDX GPL-3.0-only).
The generated art assets (textures, sprites, the opening cutscene) were produced with Grok image/video generation and are not covered by the GPL — their use is subject to the then-current xAI terms. Confirm those terms before any commercial use of the assets.