Software

Open-source packages, research tools, and small useful machines.

Current

tartan-maker

A package and command-line utility for defining, validating, rendering, and exporting tartans from YAML. It uses one SVG-first rendering model so that the design data, the visible sett, and exported images do not quietly become three different things.

Judith & Holofernes: The Fatal Image

A virtual exhibition that makes an art-historical argument through an explorable corpus rather than a long page of labels. The public exhibition currently connects 58 works across eight centuries, with the supporting research, images, and interface treated as one project.

Maintained

Kami

An agent-based modeling library in modern C++, developed at the Johns Hopkins Applied Physics Laboratory. It provides the pieces for modeling individual actors and their environments when collective behavior cannot be treated as a simple aggregate.

phonics

Phonetic encoders for English, German, and French names, plus comparison methods used in record linkage. It began with a county-data merge that needed more than wishful spelling normalization and became published, citable research software.

cmna

The companion package to Computational Methods for Numerical Analysis with R. It puts the algorithms from the book in runnable, inspectable form so that approximation, error, and numerical choices can be seen rather than merely asserted.

waterfall

A compact R package for waterfall charts in base and lattice graphics, built to make the strange accounting of public organizations easier to reason about. The work is complete rather than actively expanding.

Archive

FreeGrep

A BSD-licensed implementation of grep, originally written to understand finite-state matching and later adopted into the source trees of both NetBSD and OpenBSD; it subsequently became the standard grep in Minix 3.

Virtual Bumblebees

An artificial-life environment based on a deliberately different reading of Langton’s ant: place bees and dots on the board, then watch a simple rule system produce behavior that is considerably less simple.

WS2812B SPI Controller for ATtiny85

Firmware for driving WS2812B LEDs through SPI on an ATtiny85, built around a timing protocol that is simple in the way a bear trap is simple.

Phonics in Rust

A partial Rust port of phonics, written as a serious attempt to learn the language by translating a known problem into idiomatic traits, types, and testable components rather than by producing another calculator.

LX

An unfinished custom-domain link shortener released as source when the obvious commercial entrants arrived. It is kept as an honest artifact of a useful idea that did not need to become a product.

Small Unix utilities

daemon, rpt, uwatch, and write are small programs from the era when a utility could be worth having simply because it did one job cleanly. They are preserved as source and as a record of the systems work that preceded the larger projects.

Kivu Ebola analysis

A reproducible analysis repository for the 2018–2019 Kivu Ebola outbreak, retained as a research artifact alongside the resulting Joint Statistical Meetings presentation.