White-box
The world is plain data. Read any entity and its components straight off the table —
no object graph to traverse, no reflection tricks to reverse-engineer.
Exact
State is typed and explicit. What you read is the ground truth, not a rendered
approximation of it.
Deterministic
One canonical seeded RNG drives the whole engine. The same seed and the same inputs
produce the same run — replayable byte for byte.
Forkable
Fork the live world, run a what-if on the copy, diff it against the original, and
drop it. The same systems run on the fork as on the main world.
The agent loop
Everything an agent does with Euca falls into three verbs, all through the same API:Build
Spawn entities, attach typed components, and add rules — the world is assembled from
data, not wired up in an editor.
Play
Step the simulation forward and observe the resulting state. Physics, combat, and
rules all run deterministically on each tick.
Quickstart — build, play, and experiment in minutes
Bring up a local server and run the full agent loop against a real world.
Not an object-graph engine
Unlike Unity or Unreal, Euca doesn’t hide the world behind an object graph and a GUI. The engine is an archetype ECS: entities are generational ids, components are typed fields stored in columns, and the agent reads and writes them as a table. Rules are data too — aRule { when, do } is an inspectable, serializable value, not a compiled
callback. That is what makes the world legible to an agent: every part of it can be read,
edited, diffed, and shipped as plain data.
Current platforms: macOS and Linux. Rendering runs on
wgpu (with a native Metal
backend) using a Forward+ PBR pipeline.