Actor-Motivation Forecasting Web Tool
I read through the last article on actor–motivation forecasting, and found it annoying that there’s no way to intuitively play with parameters and watch live results from comparative statics. Then a thought struck me: “Wait, isn’t this type of thing exactly what Simon Willison would tell an llm to write for him?”
Sure enough. I puttered about with an llm for about an hour, and it birthed a web-based actor–motivation forecasting tool (wactomo) for me. Here’s the same example as in the last article, but updated a little to reflect my better understanding of the situation.1 I suppose it’s a weakness that the tool does not document what the scale represent. In this case, it is “wants Israel to exist.”
The tool itself will make little sense to someone who does not understand actor–motivation forecasting already. But a brief overview of the tool-specific functionality:
- At the top is a form for entering new actors.
- Any actor can be deleted with the button next to its row in the table.
- Any actor can have its parameters adjusted with a live-updating preview on the rest of the page. (This is the part that’s useful for comparative statics. “How does the outlook of actor Z change if actor X moves closer to the preference of actor Y?”)
- The steady-state winner is the computational shortcut Bueno de Mesquita presented in his book The Predictioneer’s Game.
- The Condorcet winner is the weighted median voter outcome, if I remember correctly.
- If the steady-state winner is not the same as the Condorcet winner, conflict is likely.
- If you click any of the actor names, the bottom square will turn into a scatterplot of the opposition from the perspective of the clicked name. For interpretation of the octants, see previous article!
- The url updates on any interaction with the tool, meaning that at any point during analysis one can copy what’s in the address bar to save the state at that point, or share a picture with a friend, or whatever.
It’s quite amazing that I barely wrote any of the code for this. I didn’t even write the actor-motivation forecasting functions: I asked an llm to translate the Python code I had from before into ES6. It seems that llms are really good at frontend development.