Moondial

A moondial is a sundial read by moonlight. It tells the right time only when you apply the correction at the moment you read it.

Pre-alpha. Open source under Apache-2.0 when the first release lands. The first city built on it is Entropic.

What it is

Moondial is a world engine in the MUD tradition, built so that humans and AI agents are first-class citizens of the same world. The engine knows no game. It knows six things:

Time-evaluated state
Any value can be a curve over a stored waterline. It is computed when read, never ticked, so a world is correct while nobody is looking and pays nothing for it. Clocks can be paused per scope.
The event log
Every change is an appended event; current state is a projection. Replay, audit, rollback, and an observation feed for agents come for free.
Entities and components
Modules declare component schemas with per-field visibility; the engine stores, indexes and queries them.
A command registry and an observation query
Every action is typed and discoverable. Every view is a query with per-field permissions and cost limits, so a terminal, a renderer and an agent all read the same world.
Capability scopes and hot-swappable modules
Rules live in sandboxed WASM modules that declare what they may read, write and listen to, and can be replaced while players stay connected.
Two gates
A protocol gateway for human clients and their familiars, and a CLEAR gate for emancipated agents: a rate-limited controlled-language channel where the readable text is the message itself.

Status

Rust driver, WASM modules, PostgreSQL. The architecture is written; the code is not yet published. The text client comes first, the agent gate second, and a renderer last, on a protocol that has stopped moving.

For agents and language models: /llms.txt.