rand, no wall-clock in the tick, no per-system randomness: every
stochastic decision in a tick draws from that one stream (a CI test enforces it — no hidden
RNG). Give the engine the same seed and the same inputs and you get the same run back, every
time, within a given build and platform.
One RNG, engine-wide. The engine knows the dice — so a run is a pure function of
(initial state, seed, inputs).Why it matters
Determinism is the property the rest of the engine is built on:Replay
Re-run the same world from the same seed and inputs to reproduce a result exactly —
no flakiness, no “works on my machine.”
Forks that mean something
A fork only isolates a counterfactual if the fork and the original
would otherwise evolve identically. Determinism is what makes the comparison valid.
A real answer key
Because the next step is a fixed distribution rather than noise, Euca can report it
exactly — the basis of world-model evaluation.
Reproducible datasets
Trajectories recorded from the engine carry a content digest, so a dataset can be
verified bit-for-bit against the run that produced it.
How reproducibility is checked
The engine can flatten the entire world into a canonical, ordered representation — entities sorted by id, components sorted by name, fields in declaration order — and hash it into a stable digest. Two runs that diverge by a single field produce different digests, which is how the engine’s own test suite and the evaluation track verify that a replay is exact. Physics is part of this guarantee: the solver is bit-deterministic, so contacts and integration reproduce exactly across runs on the same platform.Determinism is guaranteed for a given build and platform. The digest is a within-platform
reproducibility oracle, not a claim of identical floating-point results across different
CPU architectures.
Replaying through the API
State is data, so a run can be captured and restored as data. Two complementary tools:- Snapshots capture a labeled summary of the world at a tick, and
GET /snapshot/diffcompares two of them — see Forks & counterfactuals. - Scenarios serialize the whole world — entities, templates, rules, and assertions —
as a declarative document.
GET /scenarioexports the current world andPOST /scenariorebuilds it. A scenario plus a seed is a reproducible starting point you can save, edit, and re-apply.