MODELS

Everything is a state machine.

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.

THE IDEA

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.

A MODEL AT A GLANCE

States, transitions, taxonomy, messages.

TAXONOMY shared catalog · region · tier · device sample on spawn CUSTOMER · STATE MACHINE browsing cart CURRENT checkout add_item p .30 checkout p .45 stay · .55 emit_message place_order ORDER · STATE MACHINE placed
FIG.1 · CUSTOMER → ORDER STATE MACHINE SCHEMATIC
  • State node
  • Current state
  • Transition · event & probability
  • Emitted message
THE MOVING PARTS

Four building blocks.

M-01

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.

M-02

Transitions

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.

M-03

Taxonomy

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.

M-04

Messages

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.

VOCABULARY

Key modelling terms.

State machine
An entity type: a set of states, the events that move between them, and the typed fields each instance carries.
Entity
One live instance of a state machine — a current state plus its fields and references to other entities.
State
A node in a machine’s lifecycle. Each state owns a probability matrix with one row per Age and columns [stay, event₀, event₁, …].
Age
Turns since the entity entered its current state. It indexes the probability matrix and resets to 0 on every transition.
Event
A possible transition trigger, selected from the state’s probability row, gated by conditions and producing actions.
Condition
A predicate over field values that gates whether an event is allowed to fire on a given turn.
Action
An effect of an event: transition, update, new_entity, set_reference, or emit_message.
Taxonomy
A shared catalog of categorical dimensions sampled on spawn via one of five strategies, forming a dependency DAG.
Message
A value emitted by one entity and delivered, within the same turn, to a handler on another machine.
Field
A typed slot on an entity — a counter, dimension, measure, timestamp, or reference — read and written by conditions and actions.
Reference
A typed link from one entity to another. References become foreign keys in the exported dataset.
Turn
One discrete step of the simulation. Entities are activated, shuffled, and stepped once each before the clock advances.

The full reference lives in the documentation glossary.

WHY IT GENERALISES

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.

GET ACCESS

Pick a world. Or build your own.

OPTION A · OPEN NOW Try it live

Explore a pre-built scenario over REST & MCP — no signup.

OPTION B · WAITLIST Request editing access

Author and edit your own scenarios. Rolling out in batches.