# Tiny Yurts Isometric grid, BFS path-following agents, drawable routes. ```{raw} html ▶ Run in browser

Upstream: https://github.com/burntcustard/tiny-yurts

``` **Tags:** `port` `tier-1` # Tiny Yurts (SimVX port) A SimVX port of [burntcustard/tiny-yurts](https://github.com/burntcustard/tiny-yurts), a Mini-Motorways-inspired routing puzzle from js13kGames 2023. The original is HTML-CSS-SVG-in-JS and 13 KB zipped. This port keeps the gameplay shape (drag paths, settlers walk routes, farms overflow if unfed) but adds an isometric (~30 deg) projection, three farm/yurt pairs, and a Tier-1 menu/HUD baseline. ## Run All commands from `~/dev/simvx`: ```bash # Interactive uv run python ported_games/tiny_yurts/simvx_port/main.py # Headless capture (frame_30/60/120) uv run python ported_games/tiny_yurts/simvx_port/main.py --test # Scripted gameplay harness (7 stages incl. lose state) uv run python ported_games/tiny_yurts/simvx_port/harness.py # Web export (~2.5 MB self-contained HTML) uv run simvx export web ported_games/tiny_yurts/simvx_port/main.py \ -o ported_games/tiny_yurts/simvx_port/web/index.html ``` ## Controls - **Drag** (mouse or touch) between cells to lay a path. - **Right-click** a path tile to remove it. - **R** to restart, **ESC** to return to menu, **ENTER/SPACE** to start. ## Win / lose - Reach **12 deliveries** to win. - If any farm's demand exceeds its capacity, you lose. - Settlers spawn at yurts, walk paths to matching farms, deliver, return. ## File map ``` simvx_port/ ├── main.py # entry point, root, menu, game scenes, HUD ├── harness.py # scripted-input harness ├── pyproject.toml # [tool.simvx] root = "TinyYurtsRoot" ├── nodes/ │ ├── iso.py # isometric projection helpers + colour palette │ ├── grid.py # path graph, farm/yurt entities, BFS routing │ ├── world.py # World node: input, simulation, draw │ └── settler.py # animated agent that walks a precomputed route ├── screenshots/ # frame_30/60/120 + 7 harness stages └── web/index.html # web export (~2.5 MB) ``` See `../NOTES.md` for porting friction and engine gaps. ## Source ```{literalinclude} ../../examples/ports/tiny_yurts/main.py :language: python :linenos: ```