I work on cultural evolution online: what spreads, what gets selected
for, and what recommender systems do to both. The methods are complex systems and
computational social science. A good deal of the work is grounded in democratic
theory.
The constructs are discourse quality, media framing, the structure of belief in
a population, and the effect of a ranking function on the people under it. The field
argues about these and rarely operationalises them, so I write the codebooks, run the
annotation and report the agreement.
The same instruments point at language models, so part of the work is on models
directly: when theory of mind appears over training, how they handle generics and
default reasoning, and what a population of them does under a recommender I
control.
Current
Measuring the quality of political discourse on Reddit
I'm building a framework for measuring how good a political conversation is, grounded in three traditions of democratic theory that disagree with each other: Habermas on rational deliberation, Mouffe on productive conflict, Young on inclusion. The theory constrains a 56-variable codebook, and the codebook constrains everything downstream. A stratified sample of about 75,000 comments across 653 subreddits gets annotated by language models, and seven coders are validating that by hand at the moment.
2026
with seven coders validating
How news frames the victims of conflict
When a conflict kills people, some of them are named and some are counted, and some perpetrators are identified while others are left implicit. We're testing whether those choices track the severity of the event, as you would hope, or the geopolitical alignment of the outlet doing the reporting, which is the less comfortable possibility. The corpus is around 1.36 billion articles across ten years and many languages, matched to events and coded against a framing codebook. It's the largest thing I have worked on, and most of the difficulty turns out to be in the matching.
2026
with collaborators at two institutions
Does false-belief reasoning emerge the way it does in children?
Children acquire the ability to reason about what someone else falsely believes along a fairly consistent developmental trajectory. Language models acquire it somewhere during training, but nobody has looked closely at the shape of that curve. We take 41 checkpoints across the training run of an open model and score false-belief tasks by contrasting teacher-forced log probabilities, so that we can watch the capability arrive. The predictions are registered before the runs.
2026
with collaborators in Graz, Zurich and Genoa
Simulating social media with language model agents
If you want to know what a different recommender would do to a conversation, you cannot run that experiment on a real platform, and no platform is going to run it for you. So we build the platform instead: a population of language model agents posting, reading and responding under a recommender we control, and then we change the recommender and watch what happens to the discourse. The interesting question, and the one that worries me most, is how much of any result is an artefact of the agents rather than a property of the ranking.
2026
part of DeSiRe
Sandboxing cultural evolution with LLMs
Culture has no model system: transmission chains with people are too short for anything to accumulate, the historical record happened once, and formal models have control but no cognition. A population of language model agents is the first substrate with ideas and control at the same time, so we are building one on a hidden fitness landscape whose optimum we know. The catch is that a rising fitness curve is not evidence of cumulative culture, because parallel individual learning produces the same curve. So the contribution is the instrument: a detection battery that returns a verdict on whether a run shows cumulative culture, every test against a null fixed in advance, plus freeze-and-branch replay that cuts the peer channel mid-run to ask what it was worth. Lenski's freezer for culture. Theory and battery design are written; the code is landing now.
2026
Belief networks, and how a population's attitudes hold together
Using decades of General Social Survey data, this treats a population's attitudes as a network: beliefs are nodes, correlations between them are edges, and the shape of the whole thing shifts over time. The claim I most want to make is the conceptual one, that a population's belief correlation structure is a real object worth studying in its own right. Different sub-populations appear to have differently shaped structures, which would mean that liberals and conservatives do not merely hold different beliefs, but relate them differently.
2025–2026
with a co-author
Does a model have a now?
A collaboration in philosophy of language that began with how models handle generics and default reasoning, and has drifted towards temporal reasoning: whether a language model has any working sense of the present moment, and what it would mean to say that it did. This is at the reading and arguing stage. There is nothing to show yet.
early
with two philosophers
Convening
What platforms are for
Arguments about social media almost always skip the prior question of what a platform is for. I'm convening a small working group to take that question seriously: three days in Berlin in December, hosted at the Max Planck Institute for Human Development. Deliberately small and by invitation.
first meets December 2026
Berlin
On hold
Pulling knowledge graphs out of text
Given an ontology and a pile of text, can a language model produce a knowledge graph you would trust? This was a pipeline for finding out: extraction, then coverage checking, then entity normalisation, benchmarked against Text2KGBench and CS-KG-3600. The retrieval half was never finished and I put it down in April.
2026
An opt-in alternative to the nation state
A shared writing project about whether political membership has to be territorial, and what an opt-in polity, with coordination boundaries drawn around problems rather than borders, would require. It's philosophy, not measurement, which makes it a holiday from the rest of this. It has stalled because everyone involved got busy.
2026
waiting on other people
Earlier
Timid walks and prudent walks
Self-avoiding walks are paths on a lattice that never cross themselves. They are a decent model for polymer chains and a notoriously hard object to analyse. Certain restricted variants, timid walks and prudent walks, give up some generality in exchange for being tractable, and I spent my honours year on those under the supervision of Nathan Clisby. It's the furthest thing from my current work, and it's where I learned to do any of it.
honours work
Swinburne