States
Each entity is always in exactly one state — browsing, cart, checkout. A state owns a probability matrix: one row per Age (turns spent in the state), so behaviour can change the longer an entity lingers.
Mock Machines takes less than a second to generate a million rows of coherent data. Interact in real time over REST API or MCP. Data analysts can model business processes. AI engineers can use Mock Machines as a high speed alternative to environments like OpenAI's Gymnasium, or for MDP and Partially Observed MDP models.
No bespoke generator per dataset. One simple, composable primitive — the state machine — repeated and connected.
You don’t script the data. You describe how a single entity behaves — its states and the odds of moving between them — then let thousands of them run in parallel.
Because behaviour is probabilistic and entities influence one another through messages and references, the emergent dataset looks like a real system: customers cluster by region, orders trail their customers, counters drift, and every foreign key resolves. The model is small; the world it generates is not.
Each entity is always in exactly one state — browsing, cart, checkout. A state owns a probability matrix: one row per Age (turns spent in the state), so behaviour can change the longer an entity lingers.
Every turn an event is drawn from the current state’s probability row and gated by conditions over the entity’s fields. When it fires, the entity transitions, its actions run, and its Age resets to zero.
A shared catalog of categorical dimensions — region, tier, device — sampled on spawn through a dependency DAG. It gives every entity a coherent, correlated identity instead of independent noise.
Entities talk. An action can emit a message that a handler on another machine receives within the turn — spawning an order, updating a counter, setting a reference. This is how separate machines compose into one world.
The full reference lives in the documentation glossary.
A Markov decision process and a business workflow are the same shape — states, transitions, and the things that happen along the way.
If you can draw it as boxes and arrows, you can model it.
A Markov decision process is exactly this: states, actions, and transition probabilities. So is a claims pipeline, a subscription lifecycle, a payment flow, a support queue, or a player moving through a game. Swap the state names and the odds, wire up the messages, and the same engine generates synthetic data for any of them — at over a million rows per second, with the semantic layer and live API emitted alongside. The scenarios catalog is just this primitive, applied seventeen different ways.
Author and edit your own scenarios. Rolling out in batches.