In recent years, research on causation has increasingly made use of computational modeling. For example, classic questions about the causal status of omissions, the prospects of causal pluralism, or the influence of morality on causal judgment, are now being re-visited in the light of computational models of how people judged what caused an event. These models differ on the details, but at their core they assume that people make causal judgments by simulating different possible ways that things could have happened.
Unfortunately, the papers that describe the computational models can be a bit intimidating:

Not everyone has the technical background to implement a particular model from scratch on the basis of formulae like these. This means that the barrier to contributing to the new wave of research on causation inspired by computational modeling is relatively high.
I designed an R package that makes this barrier considerably lower. The package also comes with an interactive app, so you can use it even if you don’t do any R programming.
Here is an example of how you can use the app. Suppose you are interested in the causal judgments people would make about this story:
Billy and Suzy are freight train conductors. One day, they happen to approach an old two-way rail bridge from opposite directions at the same time. There are signals on either side of the bridge. Billy’s signal is red, so he is supposed to stop and wait. Suzy’s signal is green, so she is supposed to drive across immediately. Neither of them realizes that the bridge is on the verge of collapse. If they both drive their trains onto the bridge at the same time, it will collapse. Neither train is heavy enough on its own to break the bridge, but both together will be too heavy for it. Billy decides to ignore his signal and drives his train onto the bridge immediately at the same time that Suzy follows her signal and drives her train onto the bridge. Both trains move onto the bridge at the same time, and at that moment the bridge collapses.
Was it Billy’s or Suzy’s decision that caused the bridge to collapse?
It is easy to compute the predictions made by a computational model for this scenario.
- Enter a description of the scenario that the app can understand. We first enter information about the ‘root variables’ whose own causes are not explicitly represented in the story. There is one variable for whether Billy decides to go, and one for whether Suzy decides to go:

For each variable, we specify a ‘sampling probability’. This probability tells the computational model how often it should simulate the possibility where the event described by the variable happens. For instance the sampling probability of ‘Billy_goes’ is the probability that the model simulates a possibility where Billy decides to drive his train onto the bridge. Here we have specified a lower sampling probability for Billy than for Suzy, because people are biased to think of possibilities where people follow social norms, and we want the model to reflect this.
Then we define variables for the events that depend on other events defined in the story. Here we define a variable for whether the bridge collapses. We use the simple rule given in the story: the bridge collapses if Billy AND Susy drive their train onto the bridge:

- The next step is to specify what happened in the actual world: Billy goes, Suzy goes, and the bridge collapses. We do that simply by toggling the value of the root variables:

Clicking on ‘compute actual world’ lets the app automatically calculate what happens to the bridge (it collapses):

- Finally, we ask for causal judgments. Here you can choose which computational model you want to use. For illustration I choose the Counterfactual Effect Size model. You can also modify the value of a ‘stability’ parameter that determines to what extent the model simulates possibilities that stay close to what happened in the actual world:

Clicking ‘Compare causes’ shows the relative contribution of Billy and Suzy to the bridge collapse:

The model thinks that Billy’s decision to go is what caused the bridge to collapse. If you run the experiment, you will probably find that this is what people think too.
The power of computational models comes from their capacity to make surprising predictions. For example, you can modify the story slightly such that the bridge collapses if either Suzy OR Billy drives onto the bridge. Simply modify the rule for the ‘Collapse’ variable:

Now the model thinks that it was Suzy’s decision that caused the bridge to collapse:

If you do the experiment, you will probably find that people think this too (see Icard et al., 2017). So, the model helped discover a surprising fact: sometimes the decisions of people who break social norms are judged as less causal rather than more.
Once you have created a causal model of a scenario, you can save it for future use:

And that’s it!
Currently the app implements two different computational models: the Counterfactual Effect Size (CES) and the Necessity-Sufficiency model (Quillien & Lucas, 2023; Icard, Kominsky & Knobe, 2017). There are other models of causal judgment out there, and they might be implemented in a future version.
You can read more about the R package (which powers the app) here. The app is easiest to use, but for research purposes ultimately the R package offers more flexibility. For more background on the computational models themselves you can read the relevant papers (see References).
Hopefully this tool allows more people to contribute to the new wave of research on causation inspired by computational models. If you have questions about the app or the package I’m very happy to answer them either in the comments or by email.
References:
Icard, T., Kominsky, J., & Knobe, J. (2017). Normality and actual causal strength. Cognition.
Quillien, T., & Lucas, C. (2023). Counterfactuals and the logic of causal selection. Psychological Review.
Quillien, T. (2026). causaljudgment: Computational Models of Causal Judgment. R package version 0.1.0.