I recently stumbled upon BFIRES-II: A Behavior Based Computer Simulation of Emergency Egress During Fires - I had found it cited in regards to some facts about behavior during fires. Diving into it, I expected…not sure what actually, but what I got was a very wild concept piece about simulating people’s behavior in burning building.
What they built is a software system allowing someone to configure building plans, exits, obstacles, people, fire sources, smoke and other factors and then have scenarios simulated, time-step by time-step. People’s behavior was calculated by rules codified from previous research. Does this work?
As a 1982 paper on a software system, it spends a lot of pages describing the impressive ways of beating limited hardware into computing complex problems. Highly respectable, and also not the focus of this post.
What intrigued me was the idea itself: Simulating users; a whole other branch of user research, almost completely disjointed from any kind of user test, gestalt principles, best practices and what not.
This blog post is mostly a semi-organized scratch-pad documenting me exploring this idea (theoretically, nor now).
Are people doing this?
First step: Research. Using some academical and not so academical search engines, I tried to get a feel for what has been done with this idea. I found a lot of stuff:
- Apparently simulating users is done in the context of architecture quite a lot, with this paper calling it User Activity Modelling and “an emerging field”.
- In this architectural context, the focus is often on “building performance”, which can mean a lot of things: user satisfaction, job performance or energy usage, as for example according to this paper.
- Other people use the approach (or rather, a collection of very different approaches with a similar core idea) for topics such as computer security, energy price predictions, load testing, a bit of marketing, web search and information retrieval. Probably quite a few more.
Unifying theories, multi-purpose tooling and meta analyses seem to be missing, though.
Is it appropriate for UX?
A lot of these applications do border the field of UX - unsurprising, given it’s about simulating…users. However, no one (or rather no one I can find) proposes stuff like using user simulation to research understandability of a landing page or button positioning in a public toilet. Or to put it another way, user experience researchers seem not to be using this idea.
Now, three possibilities: This method is not so good for hard UX, I am bad at researching, or nobody tried yet. All possible.
One fundamental problem I do see is that UX is often about discovering the unpredictable: Observing users using a tool in a completely unintended way, discovering that the-way-we-always-did-it is really bad, stuff like that. In a way, when behavior can be reduced to a dozen straight-forward rules, the job is kind of over. Which of course devalues the idea of a simulation like BFIRES-II.
That said, this issue can be reframed to: Your simulation “just” needs to be better. We have the GPUs (if Elon Musk is not currently tweeting) and the data to derive some seriously intricate rules of human behavior for some use cases. For example, I would imagine simulating the behavior of encyclopedia editors when having the whole edit history of Wikipedia at hand would be decently fruitful. So yeah, maybe there are some pilot projects to be done, with or without AI.
No judgement for now
Of course, there are serious challenges and even dangers with this approach of simulating users. E.g., No amount of simulation would give you the idea that emergency exits should open to the outside - a lesson we learned the hard way. And at the point where your simulation tells you this, you don’t need the simulation.
So, in case that wasn’t clear: There is no point in even entertaining the idea that simulated users should or even could replace real users and talking to them.
Then again, I do think they are some great applications lurching here, somewhere. Just have to find them. No genius ideas yet.
Question to myself: How to apply this to the projects I am working on?