The game is a pure function of its inputs; the render is only an observer. Hayao is built so an LLM can author, test, and prove correct a whole game without ever opening a browser — same seed, same build, same result, every run.
One game per genre, plus physics and netplay showcases — built to test the engine end to end. Every level, board, and boss fight below is proven winnable by a solver or a bot before it ships — play them in your browser.
Pure solver-provable logic + a scene-tree SVG view + undo. Every level is machine-verified winnable.
Coyote time, jump buffering, dashes, corner correction, moving lifts. Every level is bot-proven beatable, deathless.
Card DSL, telegraphed intents, drafts between fights — tuned to a proven 17/20 pilot win rate, with drafting proven to matter.
Telegraphed attacks, push chains that rewrite the enemy's future — a perfect defence is machine-proven possible, and doing nothing proven fatal.
A pattern DSL, 480+ live bullets, grazing, focus mode — every phase proven survivable by a predictive dodge bot.
Flow-field pathfinding, 260+ units, a spear/cavalry/archer counter triangle — every counter edge is duel-proven and the war is bot-winnable.
Auto-fire, level-up builds, 160+ enemies on the Canvas backend — the full night is bot-proven survivable and the sim steps in 0.02ms.
Procgen floors proven connected across 50 seeds, raycast FOV with map memory, bump combat — every dungeon bot-proven winnable.
Sword arcs, hit-stop, telegraphed enemies, a key-locked vault — the full combat run is bot-proven winnable without dying.
Ability-gated exploration where every gate is machine-proven impassable without its ability — and the whole run bot-proven beatable.
Raycast vision cones, detection meters, noise, bushes — the full idol run is bot-proven doable with zero alarms, and the punishments proven real.
A raycast-lit lantern, panned growls in the dark, fuel pressure that forbids camping — the night proven survivable, the dark proven deadly.
Move only on the pulse, foes dance in lockstep — the beat IS sim time, so even rhythm replays deterministically.
Cascade combos, spring-tweened choreography over an instant sim — 100 boards proven fair, targets proven reachable.
Swept-circle collision (no tunneling at any speed), restitution proven energy-honest, every board proven clearable by an aim-search bot.
Rigid-body castles (stacks, planks, ropes) razed by a CCD cannonball — every castle proven to fall within its stone budget by a siege bot.
A brass-and-felt table straight from the rigid-body world — kinematic flippers, bumper-bells, CCD-tight geometry proven ball-bound (0 escaped frames), and every unflipped serve proven to drain.
Understeer at speed, grass that punishes, cut-proof laps — braking proven faster than flooring it.
Sumo shoving on a fern ring — hot-seat or true lockstep netplay across tabs/machines, peers proven to agree bit-for-bit.
Sokoban with no outside — seams that shift you sideways, every level proven to NEED the fold (unsolvable without it).
Collapse stars into black holes and sweep the debris in — every tap budget proven tight (par−1 is a proven loss).
Three counter-typed towers on an S-lane, ten ramping waves — the winning build is proven, and so is that arrow-spam LOSES to tanks.
Every roof scores by its neighbours, with the gain shown live — placement skill proven to nearly double random play.
Four seasons, energy-budgeted days, crops that wither out of season — the festival goal proven reachable, reinvestment proven to compound.
DOM buttons flow through the deterministic input log; the whole pacing curve is simulation-verified.
Four meters, double-edged cards, story arcs — judgement proven to matter (19/20 vs 0/20 reigns) and every doom proven honest.
Copy examples/sokoban/, import only from @hayao, and run
npm test. The operating manual for humans and agents alike is
AGENTS.md;
the API surface lives in
docs/API.md.