reikhelm/README.md
Parley Hatch ae67ad2ffa docs: add root README — sandbox model + folder-per-experiment convention
reikhelm is now framed as an open-ended sandbox: each game-system experiment
lives in its own top-level folder, loosely coupled, glue code as needed. README
documents the convention and maps the current contents (dungeon procgen / web
playground + explorer / AI-render pixel-art pipeline).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-02 22:16:49 -06:00

53 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# reikhelm
A sandbox for game-system experiments. No single end goal — each idea is its
own self-contained system, built to learn and to see something cool run. The
best ones might get blended into an actual game someday; until then it's just
shipping for fun.
## How this repo works
- **One experiment per top-level folder.** Each is meant to stand on its own.
- **Mix and match freely.** When two systems are worth mashing up, write glue
code between them. It doesn't have to be pretty.
- **Rust or Python**, whatever fits the idea. Rust experiments can be standalone
Cargo projects or join the workspace below for easy path-dependency glue.
## What's here so far
### Procedural dungeon generator (Rust)
A deterministic 2D map generator built from small composable **passes** over a
shared context (BSP → rooms → caves → connect → corridors → doors → pools →
pillars → entities). Towns/dungeons are different **recipes** drawn from one
primitive vocabulary (Partitioner / Shaper / Connector / Placer / Decorator).
- `reikhelm-core/` — pure generation library, no rendering deps (the `Map`
struct is the contract; renderers own all art).
- `reikhelm-wasm/``wasm-bindgen` bridge that compiles core to wasm32.
- `reikhelm-viz/` — original macroquad renderer (**frozen** — kept, not maintained).
### Browser playground & first-person explorer (JS + Canvas)
- `reikhelm-web/` — live procgen playground (reroll / seed / config sliders /
per-pass scrubber) in an atmospheric torch-lit style, plus a top-down and a
first-person (Eye-of-the-Beholder style) renderer and a walkable explorer.
### AI-render → pixel-art pipeline (Python)
- `tools/` — depth map → local diffusion render (Z-Image on the LAN
workstation) → FloydSteinberg dither through a 256-color palette → signature
pixel art. See `tools/README.md`.
## Building
```sh
# Rust workspace (host-native crates)
cargo build # builds reikhelm-core + reikhelm-viz
cargo test
# Browser playground (wasm)
wasm-pack build reikhelm-wasm --dev --target web \
--out-dir ../reikhelm-web/pkg --out-name reikhelm_wasm
python3 -m http.server 8011 --directory reikhelm-web
```
`~/.cargo/bin` may not be on the non-interactive shell PATH — prepend
`export PATH="$HOME/.cargo/bin:$PATH"` to cargo commands if they're not found.