Jix (2025-now) A tool enabling functional, declarative system and development configurations to be written in JavaScript. Internally, it constructs a Merkle-DAG of configuration units called "effects" (a generalization of Nix derivations). It's more powerful than YAML-based configuration tools (e.g. Ansible, docker-compose) and more ergonomic and flexible than Nix.
QuickJS-x (2025-now) A wrapper around Fabrice Bellard's Javascript engine QuickJS adding Node.js module loading and shims for parts of the Node.js standard library.
Uniton (2021) A Python package to control the Unity game engine. It automatically translates function calls from Python to Unity/C# and dispatches them asynchronously. It also coordinates the Python and Unity/C# garbage collectors. Demo video.
RLRD (2020) Code accompanying our Reinforcement Learning with Random Delays paper with an implementation our Delay-Correcting Actor-Critic algorithm in Pytorch.
RTRL (2019) Code accompanying our Real-Time Reinforcement Learning paper with implementations of Real-Time Actor-Critic and Soft Actor-Critic in Pytorch.
DDPG (2016) The first open reproduction of the Deep Deterministic Policy Gradient algorithm by Lillicrap, et al., 2015, in both MATLAB with manually-coded gradient computation and also the brand new (at the time) Tensorflow automatic differentiation framework.
Yoke (2018-2021) Android app turning the phone into a gamepad for Windows/Mac/Linux. Low latency communication over Wifi via UDP.