An isometric voxel RPG in the lineage of Ultima VII: a chunky little world that simulates first and asks questions later.
Thysalion renders dense voxel dioramas — market towns at late afternoon, harbours at blue hour, swamps at twilight — and fills them with NPCs who know things, fires that spread, rain that wets the cobbles, and light that behaves. Under the hood it is a Rust engine with an unusual spine: game rules run as incrementally maintained dataflow views, and world knowledge lives in a queryable graph.
- Simulation-first. Perception, fire spread, rumour, and light level are derived facts, not scripted events. Rules are expressed once, as incremental views over the world, and stay correct as the world changes.
- Deterministic by construction. The DBSP circuit that computes all derived game state is reproducible tick for tick — replays and honest saves come with the architecture.
- NPCs with beliefs, not flags. Each character holds a named RDF graph of what they think is true. It can be wrong. Gossip, lies, and stale news are first-class citizens of an oxigraph store.
- The good kind of lighting. Three tiers — clustered forward direct light, a flood-fill voxel light field, and diffuse global illumination probes ray-marched through the voxel grid itself — with no ray-tracing hardware required.
- Bounded dioramas, not infinite noise. Scenes are authored, loaded whole, and meshed at load on Bevy 0.19.
Thysalion is at the design stage; the engine is under construction. The build and test scaffolding works today:
git clone git@github.com:leynos/thysalion.git
cd thysalion
make test # prefers cargo nextest run, falls back to cargo test
make lint # clippy, warnings deniedThe fastest way into the project is the design document:
$EDITOR docs/thysalion-design.mdIt defines the four-plane architecture — state (Bevy ECS), logic (DBSP circuit), knowledge (oxigraph), and presentation — and the contracts between them.
- Bounded voxel scenes with palette-driven materials, per-face passability, and prototype-inherited entities
- A single DBSP circuit as the authority for all derived game state, with seven named verification invariants
- Per-NPC belief graphs, storylet dialogue gated by SPARQL preconditions, and TriG as the designer-facing authoring format
- Tiered lighting: day/night, weather, wet-surface response, and leak-resistant probe GI on mid-range GPUs
- Material simulation as stencil-updated scalar fields (heat, moisture, fuel) co-located with the voxel grid
- Technical design — the architecture and its rationale
- Decision records — ADRs 001–004 for the load-bearing choices
- Roadmap — capability-demo spikes and integration milestones
- Users' guide — build and test commands
- Developers' guide — contributing workflow
ISC — see LICENSE for details.
Contributions welcome! Please read AGENTS.md and the developers' guide before diving in.