A home for my projects — shipped, in progress, and still just sparks. Move your cursor through the void.
Orrery is the networking layer beneath the world. Move a crowd the normal way and the cost climbs with every entity you add. Orrery barely moves — the same handful of bytes no matter how large the crowd. Push the crowd higher below and the gap only widens.
Why "Orrery"? An orrery is a clockwork model of the solar system — a set of fine brass gears that turns to reproduce the orbits, speeds, and motions of every planet and moon around the Sun. A small mechanism standing in for something vast.
Each node is an in-memory database backed by software transactional memory. It leases records and tables from the persistent store — taking exclusive control of the slice of the world it owns (watch the store's cells turn a node's colour) — and runs each reducer as an atomic transaction that commits, or retries on conflict. A player's action reaches the gateway, commits on the node that controls the affected record, lands in the persistent store, and streams straight back to that region's clients — so everyone sees the same world, live. As load shifts, players are handed off between nodes. Click a player to send an action.
The world isn't a map — it's an interaction graph. Players are nodes; every interaction (proximity, combat, trade) is an edge. Servers own cohesive clusters of that graph, and the boundary between them is a min-cut — the fewest interactions crossing servers. As play shifts, the graph re-clusters: a heavy cluster splits along its weakest cut and a fresh server takes half; light ones merge. No spatial borders. Click to spark a burst of interactions and watch a cluster form, then split.
Every change the world makes is recorded, in order — a complete history you can rewind. The world's state is just those changes replayed in sequence, so you can travel to any moment: drag the timeline to rebuild the exact world at that point, or press play to watch it unfold. The live history holds 197,500+ transactions since the last snapshot. Drag the timeline, or press play.