What a Synthetic Audience Actually Tells You: Three Engagements With MiroFish
MiroFish hands you a room full of people you can interrogate.
MiroFish is a program I run on my own machine to build a crowd of simulated people and watch how they react. The foundation is open-source code — free, public, available to anyone — that I have wrapped in my own working methods and my own way of turning the results into a report. You feed it raw material: real social-media posts, interview transcripts, draft policies, background documents on whatever world you are studying. From that material it generates a population of characters, and each character has a distinct personality, a memory that carries forward as the run goes on, and its own way of deciding how to act. The characters then talk to each other on a stand-in version of social media and respond to events, the way a real crowd would. I can watch the whole crowd at once or stop and question any single character one-on-one.
It runs in five stages. Every engagement below lives somewhere on this spine.
One — Building the map. The program reads through the raw material and pulls out the people, places, organizations, and ideas in it, then maps how they all connect. That map becomes the shared knowledge the simulated crowd draws on — who exists in this world and what they know about each other.
Two — Casting the crowd. From that map, the program creates the individual characters and sets the rules of the space they will act in — what kind of posting, replying, and arguing is normal there. This is the step where a vague “audience” turns into a specific cast of named individuals, each with a clear point of view.
Three — Running it. All the characters act at the same time — posting, reacting, and influencing one another, each one’s memory updating as things unfold. This is where surprises appear: the crowd splits, rallies, or turns in ways no one planned. Those unplanned patterns are usually the most valuable thing the run produces.
Four — Writing the report. A separate part of the program reads the entire record of everything the crowd did and said, then writes up the finding: what idea spread, who carried it, and where it all pointed.
Five — Interviewing the crowd. After the run, I can talk directly to any individual character, or to the report-writer itself, and press a single character to explain why it reacted the way it did. The crowd stays available to question long after the headline finding is in. This is the part no survey can do — a survey hands you percentages you cannot talk back to.
Three engagements follow — a telehealth venture, a documentary film, and the company that runs the payout-and-risk plumbing behind a trading industry. The clients stay anonymous; the work is described in full.
Engagement One: a global telehealth venture
The venture was building a new kind of interface — a screen where the patient and the system talk back and forth in real time, and the layout reshapes itself around the conversation as it goes. They needed to know how a real range of patients would handle that screen before any of it reached a real person. Normally you would test two versions of a design against live users and see which performs better, but you cannot do that with an interface that does not exist yet, on patients a clumsy version might harm. A simulated group of patients fills exactly that gap.
Benefit one: a reusable testing method, not a one-time study. What I handed over was a testing setup they could run again and again — a fixed group of simulated patients, a fixed set of things to put in front of them, and a clear way to score how the design landed each time. Whenever they change the interface, they re-run it. The method itself became a tool they kept, rather than a single report that gets filed and forgotten.
Benefit two: a small, named, defensible group of thirty-one. The casting step settled the group at thirty-one simulated patients, all English-speaking and based in the UK — a manageable, knowable set of people rather than a faceless mass of “respondents.” I could tie every claim back to a specific patient’s own words. The client looked past summary percentages and straight at named individuals saying real things, and could ask me to dig further into any one of them. Thirty-one people you can question beat three thousand silent rows on a spreadsheet.
Benefit three: it pointed to the next research, not just the answer. The interview step kept paying off. Questioning the characters surfaced a plan for a follow-up study on real-time, multi-channel interaction — voice, text, and visuals together — that we ended up co-authoring. A good run reopens the question instead of closing it: it shows you the next twenty things worth asking, now answerable because the simulated group already exists to ask. I left the venture a list of follow-on studies they could run against the same group.
Engagement Two: an independent feature documentary
An indie film marketing operator came to me ahead of an eighty-city theatrical rollout with three questions: which audience shows up in a theater, what converts interest into a ticket, and what share waits for streaming. Make-or-break questions for a film with no streaming date and a narrow window to prove itself. Get the audience wrong and the campaign budget talks to people who were never leaving the house.
Benefit four: five characters with real inner reasoning. The casting step produced five clear characters — a lapsed activist, an older documentary devotee, a skeptical younger viewer, a faith-community organizer, and a casual streamer. When I interviewed each one, they answered the attendance questions in their own voice, with reasoning I could quote. The faith-community organizer went past “I might go” and explained what would turn the screening into a community event worth rallying her network around — a completely different marketing instruction than “buy a ticket.”
Benefit five: it caught its own mistakes. When the program wrote its first report, that draft put fake quotes in the mouths of real people connected to the film, let some of its own internal labels slip into the writing, and invented a cultural reference that does not exist. I threw the whole draft out and rebuilt the deliverable using only the clean material from the one-on-one interviews. The client got a report I could defend line by line: no made-up quotes, no filler, every finding traceable to a character that actually said it. A program like this can produce garbage, and the only thing that makes it safe is a human checking every line. That checking is the service.
Benefit six: a map of who to call, not just who to reach. I went past “here is your audience.” Each of the five characters pointed to a specific kind of distribution partner — the outlets, groups, and community structures that already have that kind of person’s trust. The activist pointed at one set; the documentary devotee at another. The operator walked away with a named partner list, character by character: who to actually call, not just who to aim ads at.
Benefit seven: a list of the specific ways it could fail. The report named four concrete ways the campaign could go wrong, each one drawn from how the characters actually reacted — not vague warnings. The streamer made the biggest risk concrete: I could show exactly which messages made that kind of person quietly decide “I’ll catch it later when it streams,” which is the most expensive outcome for a theater run. Naming the failure is what lets you design around it.
Engagement Three: the company that runs the “plumbing” behind a trading industry
This client runs the behind-the-scenes machinery — the systems that handle payouts and risk — for a large share of the companies in his industry. He had just sat on a public panel about trust and transparency in that industry, and he draws a hard line between things that are merely interesting to know and things that actually tell him what to do. He only wanted the second kind. I built a simulated read of how that panel landed across his industry’s online conversation in the days after it aired.
Benefit eight: eleven audience groups, each backed by real, dated posts. The casting step built eleven distinct groups — traders who passed, traders who got denied after scaling up, people who watch patterns across multiple firms, the firm operators themselves, outside observers, dispute handlers, and more. When the report was written, each simulated group was matched to real public posts: actual dated, sourced comments from the live online conversation that said the same thing the simulated group said. So the read never floated free of reality. The character said it, and here is a real person, with a date and a link, saying the same thing.
Benefit nine: a finding he could not have reached from his own seat. This came out of the run itself — the kind of result that only appears once you let the characters react to each other rather than answering you directly. Two halves of his audience absorbed the same panel in completely different ways. The firm operators took the panel’s talk of “trust” and immediately turned it into new marketing language. The traders ignored that language almost entirely; they worked around every stated promise and judged firms only on proof they could see — money actually paid out, client funds actually kept separate, disputes actually resolved. He had been on that panel and heard the words said out loud. What he could not see from the stage was that his most important audience had thrown those words away and was keeping score on something else entirely. The run showed him the gap between what was said and what was actually heard.
Benefit ten: one specific, testable move. A result that ends at “interesting” was a failure by his own standard. This one pointed at a single action: because his systems sit underneath so many firms at once, he is the only player who could publish a verified, industry-wide record of payouts that no single firm could cherry-pick to flatter itself — turning the panel’s vague “trust” talk into a concrete product, backed by real numbers. The finding told him what to do.
Benefit eleven: a built-in way to prove it wrong. I built the read so it could be disproven. It included a clear bar — a specific number that, if the real world came in below it, would mean my central finding was wrong and he should drop the whole idea. A conclusion that can never be proven wrong can never really be trusted. Handing a client the exact evidence that would sink your own recommendation is what separates real intelligence from flattery, and it comes standard with every read I deliver.
Why this works
Each of those eleven sat at a stage: a reusable testing method built around the group, a small named cast settled in the casting step, a split between two audiences that only showed up once the run was live, a bad first draft caught and discarded at the report step, a partner list and a follow-up study pulled out in the interviews afterward. A simulated audience is cheaper and faster than a real one, but that is the smaller point. The real point: across those five steps you can question the crowd, tie what it says back to real posts by real people, press a single character until it explains itself, and keep the whole group on hand instead of mailing out a one-time survey.
Real audiences give you answers. A simulated audience gives you a crowd you can keep questioning — one that surfaces the ways a plan can fail, names the partners worth calling, shows you the gap between what was said and what was actually heard, and hands you the next move. Clients who run one of these tend to run the next.
