Skip to the simulations
SIMEA · five simulations

The SIMEA simulations

A claim about how systems steer the people inside them is empty until you can watch it happen and put a number on it. These five models are where I do that. They run in your browser, they say what they cannot show, and every one of them can be driven by hand until it breaks.

SIMEA is a research programme. Classical economics models the agent as a rational maximiser. Behavioural economics keeps the maximiser and catalogues the ways it fails. SIMEA starts somewhere else: the agent as a decision subject, embedded in systems and steered by them, where the systems in question are algorithms, platforms and recommender architectures. It proposes three measurable constructs. The influence gradient a system exerts on a choice. The autonomy threshold that remains the agent's own. And the entropy of the choice environment itself. The note that sets all of this out is here.

01Why a programme like this needs models it can run

A written framework has a failure mode I want to be honest about. It can be perfectly coherent, cite well, sound right, and contain nothing that could turn out to be wrong. Prose is very accommodating. You can write that systems shape choices, and no sentence anywhere in the paragraph will object if what you actually meant was vague.

A simulation does not accommodate. To write one you have to decide what an agent is, what it can see, what it does with what it sees, and what the system is allowed to do to it. Every one of those decisions is a commitment, and a commitment can be wrong in a way a sentence cannot. The model then runs and produces an outcome you did not choose, and the outcome is frequently not the one the prose implied. That is the whole value of the exercise.

There is a second reason, and for these three constructs it is the important one. A construct that cannot be computed is not measurable, whatever the paper says about it. The influence gradient is a good example: it is defined against a counterfactual, the same population without the system in it, and in the world there is no such thing to compare against. In a simulation there is. You can run both, hold everything else identical down to the order in which the random numbers are drawn, and read the difference. That does not solve the measurement problem outside. It does show exactly what quantity you would be trying to get at, which is the necessary first step and is usually skipped.

And a third, smaller reason. Some of what the programme argues about determinism and forecasting is easy to nod along to and hard to believe properly. That the size of the next event can be genuinely unforecastable even when the mechanism is fully known is one of those. Reading it is agreement. Dropping grains on a pile until it happens to you is something else.

02The five

The middle one is the programme's own. The other four are standing models from the literature, which I rebuilt because each of them isolates one thing the programme needs the reader to have felt rather than been told. Each page cites its source, states what it assumes, and ends by saying what it does not show.

One Segregation without a bigot Schelling's model. Two kinds of household, a board, and a rule about how many neighbours you want to be like you. You set the demand and run it. You learn that an outcome can be far more extreme than any preference that produced it, and that reading the preference off the outcome is a mistake.
Two, the flagship The recommender A population with opinions, a feed that decides what each of them sees, and the same population run again beside it with a neutral feed. You set how hard the feed favours agreement, how open the agents are, and how much random material gets through. The three constructs are defined on screen and measured while it runs.
Three Diffusion One contagion at one transmission probability, over a lattice, a small world and a scale free graph, plus a threshold rule that behaves nothing like the simple one. You change only the shape of the network. You learn that the structure a system imposes can matter more than the thing travelling through it.
Four The jam A ring road with nothing blocking it, one tap on one brake, and a jam that forms and travels backwards through the traffic. You set the density and the reaction time and find the edge between free flow and stop and go. You learn what a collective object with no cause looks like.
Five The pile Grains dropped one at a time, toppling when a cell holds too many, with the avalanche size distribution building up on a log log plot. You drop grains. You learn that a system can hold itself at the edge of stability, and that the size of the next event there is unforecastable in a way no better instrument would fix.

03How the three constructs are operationalised

All three live in the second simulation, defined on the page where they are measured. In short, and with the same caveat printed there in full: each of these is one way of turning a construct into arithmetic, chosen because it is simple, bounded and legible, and not the only way.

influence gradient G = ( sum over bins of | F_steered − F_neutral | ) / (bins − 1) autonomy threshold A = average over agents of ( 1 − μ · m_i ) entropy of the environment H = average over agents of ( − sum over bins of q_i log q_i ) / log (bins) G is the distance along the axis between the steered population and its counterfactual twin, where F is the running share of the population at or below a bin: how far the mass would have to be carried to lay one exactly on the other, as a share of the width of the axis. A is the weight an agent's own prior still carries in its update, where m_i is how many of the items it was shown it accepted. H is the Shannon entropy of the distribution one agent's feed is drawing from, normalised so that a feed covering the whole space reads one, and averaged over the population.

Reading these numbers across different models, or carrying them out of this site, would be a mistake. They are built to be compared with themselves, inside one model, where the only thing that changed is the thing the reader changed.

04What all five of them are not

None of these is evidence about people. Every agent in them is a short rule I wrote by hand. Where a model is due to somebody, that person is cited on its own page with a link, and where a claim about the world is made it is a claim from a paper rather than from a run. Every number produced here comes from the parameters above it and describes nothing outside the page.

They also share a comfort I want to name. In every one of them I know the mechanism exactly, because I wrote it, and the counterfactual is available on request. Neither is true of anything the programme actually wants to study. The gap between a model where the influence gradient can simply be computed and a world where it cannot is not a detail to be tidied up later. It is the research problem, and these pages are the statement of it rather than its solution.

05How they are built

Each simulation is one HTML file. Plain JavaScript and a canvas, no library and no framework, no network call after the fonts have loaded, and nothing stored anywhere except the settings in the address bar, so that a link reopens the run you were looking at. They work offline once loaded.

Each one holds its animation if your system asks for reduced motion, and keeps a step button so it stays fully usable without a single frame of movement. Every control is a standard slider, radio group or button, and every model can be driven from the keyboard alone. Each canvas carries a written description of what it currently shows, and each figure keeps a running line of prose that agrees with the arithmetic, so that a screen reader gets the same reading a pair of eyes does.