Research

Current work ranges from programming languages and cyberphysical control to information geometry, emergent computation, signal reconstruction, and acoustic localization. Across those domains, the recurring problem is how to make structure and behavior legible when data, environments, or evidence are incomplete.

Most of this work is open-source. If any of it overlaps with your own work, reach out.

Jacquard

Programming languages
OCaml In progress

A small programming language for running, reviewing, simulating, and trusting programs written by models and reviewed by people. Every function signature carries an effect row, so one line tells you whether code can reach the network or filesystem, and nothing runs until each capability is granted explicitly. Effect handlers swap the outside world for a scripted fake, a recorded trace, or a probability model, so the same code runs unchanged in production and in test.

The bet: when most code is written by machines, the humans reviewing it need the language itself to answer what a program can touch and how certain it is, instead of relying on comments, logs, and careful reading. Version 0.1 works end to end as a research prototype, with an interpreter, type checker, standard library, and test framework.

Baseplate

Cyberphysical control
Go Private · in development

A control system and reference architecture for operations that mix machines, sensors, people, and materials. The organizing rule: deterministic control and safety stay local to machine controllers and safety systems, while platform services coordinate, authorize, plan, and observe, and never replace a controller's permissives or interlocks. Service contracts require durable state, idempotent commands, and defined behavior under retries, partial failure, and degraded clocks.

Software that coordinates physical operations usually either treats the plant like a web app or disappears into a vendor stack. Baseplate is an attempt to write the boundary rules down precisely enough to build against: what a service may decide, what only a controller may do, and what counts as evidence that work actually happened.

Private repository

Evidence Holonomy

Information geometry
Python Library

Python library implementing KL-rate holonomy estimators, entropy production estimation, and arrow-of-time detection. Reformulates existing information-geometric ideas about irreversibility into a usable tool with CLI and demos across audio, images, video, sensor data, and financial time series.

If you work with sequential data and want to measure directional asymmetry (does this process look different forwards vs. backwards?), this gives you a geometric way to quantify that. The arrow-of-time demos show it working across very different data types.

Embodied Field Intelligence

Emergent computation
Python · Jupyter Library

Uses cellular automata as a substrate for real-time distributed intelligence in embodied agents. Instead of centralized planning, agents navigate and learn through local field operations: diffusion-based scent trails for navigation, visit trails and novelty detection for memory, and local Oja/BCM/slowness-based learning for schema acquisition. All computation stays CA-native, meaning every behavior emerges from local cell updates over cognitive fields.

A way to get intelligent-looking behavior (exploration, avoidance, adaptation) without anything that resembles a brain. Relevant if you're interested in minimal architectures for embodied agents, or in how far local field dynamics can go before you need centralized reasoning.

CoCore

Signal reconstruction
Python Private

Exploring graph-based approaches to reconstructing coherent spatial fields from sparse, noisy sensor data. The graph structure handles three related problems: filtering measurement noise, identifying which sensors are drifting or broken, and interpolating between sensors to recover the full spatial picture.

Potentially applicable to environmental monitoring, infrastructure health assessment, or any domain with irregular sensor placement. The graph formulation means the approach doesn't require a uniform grid, which is where most classical interpolation methods start.

Private repository

Acoustic Event Locator

TDOA multilateration
Python Library · working prototype

Library for locating impulsive acoustic events (gunshots, explosions, impacts) using time-difference-of-arrival from unsynchronized consumer video. You feed it video files from different phones with different start times and positions. It extracts the impulsive event from each audio track, estimates relative time offsets, and multilaterates the source location.

Built for forensic and public safety applications. After an incident, bystander video often exists but nobody knows where exactly the event originated. This library can answer that from the audio alone, without purpose-built sensor infrastructure.