Skip to main content
A fork is a deep copy of the live world. The same systems — physics, combat, rules — run on the fork as on the main world, so a fork evolves exactly as the original would have, until you intervene on it. That is what makes a fork a genuine counterfactual: any divergence you observe is caused by your intervention, not by drift. The pattern is always the same four moves:
1

Fork

POST /fork deep-clones the main world into a named fork at the current tick.
2

Intervene

Change the fork — step it further, edit components, apply a scenario — without touching the main world.
3

Diff

Compare the fork’s outcome against the original to read off exactly what your intervention changed.
4

Drop

DELETE /fork/{id} discards the copy. The main run is untouched throughout.

A what-if run

POST /observe on the main world and GET /fork/{id}/observe return the same shape of world dump, at different ticks — so the divergence between a fork and its parent is just a comparison of two tables.

Forks vs. snapshots

The two tools answer different questions:

Counterfactuals as the answer key

Forking is also how Euca answers action-conditioned questions exactly. To compute “what would the next state be if the agent took action a,” the engine forks the world, applies a on the copy, and reads the resulting next-step distribution — without disturbing the real run or consuming the canonical RNG. That operation is the backbone of world-model evaluation: the exact post-action ground truth a model is graded against.