Software

Open-source tools and R packages for quantitative social science built to make experimental design, data visualization, and archival data more accessible.

Interactive dashboards

University rankings dashboard
Web Dashboard 5,790 institutions · 14 ranking systems · 2003–2026

A latent measure of international university standing

Fourteen international ranking systems pooled with a dynamic Bayesian latent-trait model. Each ranking is treated as one noisy, censored instrument reading a single underlying quantity rather than as an answer in itself, so the credible band widens in years when fewer rankings listed an institution. Three views: trajectories, departments, and the method.

195 system-editions · 210,762 published listings

European protest and coercion dashboard
Shiny App 29 countries · 1980–1995 · 76,000+ events

European protest & coercion dashboard

Browse, visualize, and model Ron Francisco's European Protest & Coercion Data, the most comprehensive daily-resolution record of political contention and state repression in modern Europe. Four tabs: summary statistics, annual trends, a searchable event table, and interactive regression estimation.

Data: ronfran.ku.edu · Cite as: Francisco, R. (2000). European Protest and Coercion Data. University of Kansas.

Personalism in dictatorships dashboard
Web Dashboard 497 leaders · 123 countries · 1946–present

Personalism in dictatorships dashboard

Explore a cross-national dataset measuring personalism in dictatorships via 21 binary indicators and bifactor 2PL IRT estimation. Six tabs: leader rankings, time trends, regional comparisons, indicator details, model diagnostics, and a full codebook.

With Lee Morgenbesser · Manuscript in progress

Election frequency dashboard
Web Dashboard 199 countries · 3,684 elections · 1945–2026

Election frequency and its political consequences

How often nations hold national elections since 1945, and whether voting more often tracks political division and political indifference. An interactive scatter with a fit line and correlation that recompute as you change the outcome, the period, the turnout source, or the regime types shown; a ranking of the most frequent electorates; elections worldwide per year; and a specification-curve explorer over 1,548 model specifications.

With Daisuke Asahara, Liang-Yu Ko, Sho Miyazaki, and Kiyoteru Tsutsui · Manuscript in progress

R packages

Browse the documentation for each package.

colorr CRAN Active

Color palettes for EPL, MLB, NBA, NHL, and NFL teams.

nomine CRAN Active

Classifies names by probable race/ethnicity and gender using the NamePrism and NamSor APIs. Useful for large-scale audit studies and correspondence experiments where respondent identity needs to be inferred from name data.

plotrr CRAN Active

Functions for visual exploratory data analysis with nested and hierarchical data. Coauthored with Michael J. Nelson.

repllm GitHub Active

Generates materials for survey experiments from a factorial design and helps researchers check them before fielding a study. Built on ellmer, it checks text length, readability, vocabulary overlap, and words that reveal the condition; collects blinded model ratings; and prepares blinded rating sheets for human coders. Model and human ratings use the same summaries and robust contrasts, making agreement and differences easy to inspect.

tufter GitHub Active

Tools for drawing and reviewing ggplot2 figures using Edward Tufte’s design principles. Includes range frames, slopegraphs, sparklines, direct labels, and checks of graphical design.

validatednamesr GitHub Active

A database of 600 names with 44,000+ evaluations across race, income, education, and citizenship, designed for experimental studies on race and ethnicity. Coauthored with Jae Yeon Kim, S. Michael Gaddis, John B. Holbein, Connor Guage, and William W. Marx.

Crabtree et al. (2023). Scientific Data, 10, 130.

Teaching software

Kiln
Web App 6 activity types · no accounts needed · AI-powered

Kiln: AI-resilient active learning

A real-time active learning platform for university classrooms. Students join with a 6-character code (no accounts, no downloads) and participate in timed, peer-dependent activities that resist AI shortcuts by design. Activity types include Peer Critique, Socratic Chain, Peer Clarification, Evidence Analysis, and AI-powered Scenario exercises (solo and multi-persona).

course-bots instructor page
Python timed activities · server-side key · exportable traces

course-bots

Timed classroom chatbots for three activity types — typed defence, Socratic practice, and rubric coaching. The API key stays server-side, so students never handle one, and every session exports a full trace for marking or for studying how students actually used it.

Civic Town
Web App political finance · cooperative simulation · live classroom

Civic Town

A live cooperative simulation of Bonotti and Nwokora’s civic model of political finance. Students join with a class code and allocate civic credits across party vouchers and civic institutions, then observe the effects on democratic health indicators — voice, accountability, collegiality, turnout, and funding concentration. Designed to make abstract readings tangible in real time.

Quota Lab
Web App gender quotas · representation · interactive

The Quota Lab

An interactive classroom tool for exploring electoral gender quotas and representation theory. Students design parliamentary reforms, shape a legislature, and discover what representation really means — drawing on Mansbridge (1999) and Celis & Childs (2020). Includes a parliament simulation game and a representation quiz.

NudgeLab
Web App nudge theory · 3D simulation · food & justice

NudgeLab

A 3D cafeteria simulation where students play as the new cafeteria director at Monash University. Over three days, they select nudge interventions to promote healthier eating and watch the consequences unfold in real time across four dimensions — effectiveness, justice, autonomy, and dignity. Designed for ATS1071 Week 10 (Food & Justice).

AI experiments

Things built for the pleasure of building them, mostly in languages I had no business using.

Development dates mark the first recorded version.

  1. Web appDeveloped

    Lofi Loops

    Make looping pixel-art study scenes with generated music, from a prompt or by hand, and download stills, soundtracks and clips. Generation runs in your browser on your own OpenRouter key. Started from an idea by Sprite Fusion.

    Open the studio
  2. 3D worldDeveloped

    A year in a Soviet city

    Walk through a Soviet city across twelve months. Queue for bread, renew a passport, ride the tram, and explore everyday life through objects, music, and an archive of 244 articles and 98 historical photographs.

    Enter the city
  3. 3D atlasDeveloped

    Palimpsest: The Monash field atlas

    Monash's Clayton campus and the suburbs around it, centred on the Menzies Building. Take a seven-stop walk, move through 16 periods of aerial imagery and dated documents, and open 42 photographs and source-linked place histories.

    Take the tour
  4. 3D modelDeveloped

    Attaleia: Antalya and Konyaaltı through time

    Antalya and the Konyaaltı coast from the founding of Attaleia in 150 BC to 2026, on real terrain with 18,381 mapped buildings, dated landmarks, the city's vanished walls and harbour, and licensed photographs.

    Take the tour
  5. 3D modelDeveloped

    Mongodan: Magadan through time

    The site of Magadan from 1200 to 2026, in English and Russian, on real terrain with 4,976 mapped buildings. The 1930s wooden town, the transit camps and the Dalstroy headquarters are rebuilt from sources, and an Old Koryak village stands for the centuries before the city was founded in 1929.

    Take the tour
  6. Terminal appDeveloped

    red-devils

    A terminal dashboard for Manchester United: fixtures, live scores, tables and form across every competition, pulled from ESPN’s public API.

    View on GitHub
  7. macOS appDeveloped

    earshot

    A macOS menu bar app that speaks typed messages into a chosen audio output, including Bluetooth headphones paired to the Mac. Built for a specific household problem.

    View on GitHub
  8. Terminal appDeveloped

    footyball

    Australian sport in one terminal dashboard: AFL, NRL, both A-Leagues, the NBL and Super Rugby Pacific. Written after moving to Melbourne.

    View on GitHub

Using one of these tools in your research? I'd love to hear about it. Bug reports, feature requests, and coauthorship inquiries welcome.

Get in touch →