About This Simulator
This is an interactive simulator for reflexive composition of elementary state machines, a computational framework introduced by Salzberg & Sayama (2025). It lets you explore the surprisingly rich dynamics that emerge when simple two-state finite state machines are arranged on a one-dimensional lattice and updated through a specific sequential process.
What is Reflexive Composition?
Take a row of identical finite state machines, each with just two states (S0, S1) and two symbols (0, 1). At each step, a message is passed from one end of the lattice to the other: each machine reads the incoming message, transitions to a new state, and passes an output message to the next machine. After the sweep, the lattice order is reversed.
This alternation of direction — the "reflexive" part — ensures that no element permanently acts as just a processor or just a carrier. It is the key property that enables a symmetric treatment of state and message, leading to surprising connections between seemingly different machines.
Key Findings
-
M45 generates Rule 90: Two steps of machine M45 (a state-reporting FSM)
are equivalent to one step of cellular automaton Rule 90:
q'i = qi-1 ⊕ qi+1. From a single centered cell, M45 produces the Sierpiński Triangle. - M54 reverses Rule 90: Machine M54 (a message-propagating FSM) computes preimages of Rule 90 under null boundary conditions. These reverse trajectories reveal striking nested fractal structures not previously reported in the literature.
- State–message duality: M45 and M54 are related by transposing the roles of state and message. This implies that the direction of time is a product of which role — operator or operand — one assigns to each element.
- Diversity from simplicity: Despite the minimal setup (two states, two symbols), the 256 possible machines produce a wide variety of dynamics including reversible billiard-ball behavior (M44), substitution-system fractals (M61), and more.
Using the Simulator
- Machine presets: Select from notable machines (M45, M54, M60, M44, M61) or define a custom transition table.
- Boundary conditions: Choose fixed-0, fixed-1, or null boundaries. Null boundaries are required for the Rule 90 correspondence and reversal.
- Editing: Click cells in the first row to set the initial state. When paused, click cells in the last row to modify the lattice and continue from there.
- Steps/frame: Increase this to simulate many steps per rendered frame for faster exploration.
- Fit to width: Scales the grid to fill the viewport. Works with grids of thousands of cells.
The Paper
Chris Salzberg & Hiroki Sayama (2025)
arXiv: 2505.07186