An endless, vertically scrolling dungeon map built from hand-drawn geomorph
tiles, laid out like physical cards on a tabletop. One plain HTML file, no
dependencies, no build step — open index.html in a browser (works straight
from file://).
Tiles are placed on a grid over a scrolling wood texture, and the layout is generated lazily row by row, forever. The generator guarantees, provably and everywhere:
- Edge matching — exits meet exits, walls meet walls, and no exit ever faces bare table.
- No adjacent duplicates — a tile never touches itself in the same rotation.
- Sealed borders — the sides are always walls; the top has exactly one entrance.
- Full connectivity — every corridor and room is reachable from the entrance: one connected component, no sealed-off pockets, endlessly.
- Determinism — the whole dungeon derives from the seed in the URL, so a dungeon can be bookmarked or shared.
| Control | Action |
|---|---|
| Scroll / drag / arrow keys | Explore (downward is endless) |
| Space | Toggle the gentle auto-scroll |
| Sparseness slider | How much bare table shows between tiles (~89% packed to a lone winding trail) |
| ⚅ New dungeon | New random seed |
Both the seed and the sparseness live in the URL hash
(#seed=12345&sparse=39), and browser back/forward navigates your dungeon
history.
See SPEC.md — a self-contained specification with the algorithms and invariants, sufficient to re-implement the app in any language: tile slicing and edge signatures, the constructive row builder and its connectivity proof, the bare-table virtual tile, weight profiles, and the verification checklist.
geomorphs/geomorph-tiles-2.jpg— sprite sheet of 15 hand-drawn tiles: three interchangeable variants of each shape (dead end, corridor, corner, T-junction, crossroads).geomorphs/table-top.jpeg— the tabletop texture.
