Tools

Research software

Rust / static analysis

let mass = (10.0)
    .scalar::<Kilogram>();
let force = Vec2::<f64, Force>
    ::new::<Newton>([1.0, 2.0]);
let acc = force.scale(mass.inv());
mass + forceRejected: incompatible dimensions

SLUT

Vectors and matrices that carry physical dimensions. Incompatible units become compile errors rather than silent arithmetic bugs.

Experimental · nightly Rust crates.io ↗

Rust / UI module

Declare

<?component id="badge"?>
<?bind var="text"/>
<b class="badge">$text</b>
<?/component?>

Use

<?use id="badge"
  text="Suspicious"/>
<?use id="badge"
  text="Unsuspicious"/>
Rendered
Suspicious Unsuspicious

HRML

The language this website is built with. A static-site generator with reusable components, component hoisting and MDX support.

Production GitHub ↗
Python / Graphics tooling
A white square moves and separates into red, green and blue blocks through Remblais transport. A still frame of the white square separating into red, green and blue blocks.

Remblais

Image morphing through optimal transport, not cross-fading. Colour follows transport paths; brightness differences set the budget for created mass.

Work in progress GitHub ↗

AI / interpretability

“marx” ↔ “stalin”

GPT-2 base
1,985
MarxGPT-2 aligned
2,249

README-reported Euclidean distances between mean-pooled output logits, not political scores.

Political Alignment

Tools for examining political alignment in language models: political-compass evaluation and analysis of model outputs for pairs of concepts.

Experimental GitHub ↗

Reproducibility & Nixing