The study of a game that improvises.

Etude Fantasia is a way to study Magic: The Gathering. Play a trained manabot in your browser, replay every decision, and train your own — the whole loop also runs on your laptop from one command.

An Etude Fantasia board mid-game: two players' battlefields on a parchment sheet, with the game log and actions in the margin
The Sheet: one continuous leaf, ruled regions, and the margin holding the apparatus.

Three subsystems, one loop

Etude

The authored play, replay, and study experience. A finished game is study material: the Score restores consequential decisions as you understood them, shows what else was worth considering, and lets you retry a line before the reveal.

manabot

The trainable agent — search and learning library, Gymnasium wrappers, and experiment tracking. The default preset trains a small manabot on a laptop CPU in under a minute; serious runs scale to the cloud.

managym

The deterministic Rust rules engine and vectorized environment the agent lives in, with Python bindings. One rules authority plays the game, replays it, and answers what could have been.

Play locally

You need uv, Node, and a Rust toolchain. One command installs locked dependencies, builds the engine, starts backend and frontend, and opens the curated matchup against a trained manabot in your browser.

git clone [email protected]:loopflowstudio/etude.git
cd etude
./scripts/play

Train a manabot

No accounts, no GPU. Checkpoints save locally; point the play screen's opponent selector at what you trained and face it. Play, train, play against your own manabot — that loop is the project.

uv run manabot train

The research ledger

Etude's research program is preregistered and reproducible: every experiment states its prediction, budget, and kill criteria before running, and negative results are recorded alongside positive ones.

Read the ledger on GitHub