Computie 68k

A series of single board computers using 68010 and 68030 processors, along with a Unix-like OS that runs on them.


A type-inferred language and compiler, written in Rust, based on ML, Rust, and Python, and using LLVM as the backend. It can compile to LLVM IR bitcode, which can be further compiled to a native binary.

Moa Emulator

An emulator for 68000 and Z80 processors written in Rust. It can emulate the Computie hardware, as well as the Sega Genesis and the TRS-80. I've also been working on support for the Macintosh 512k.


An Operating System written in Rust for a Raspberry Pi 3 (Aarch64), which also runs in Qemu. For the moment, it's a simple monolithic OS with a Unix-like API. It can run user processes in their own virtual memory address space, loaded from an elf binary compiled by Cargo, which is in turn loaded from the microSD card. It also has a virtual file system with support for reading and writing ext2 partitions.

Nerve Control Network

A server program written in python3 that controls and coordinates devices in the home. This project ties together the Android Remote, RGB Nodes, and Desk Clock projects, along with various other control and data sources, such as VLC, XMMS2, IR-controllable equipment, and MySensors wireless nodes. A built-in web server is used as the primary user interface.

RGB Node

An Arduino-based controller for RGB LED strip lighting. The controller has an IR receiver programmed to read the codes from a repurposed TV remote, as well as to receive commands through USB from a computer. Multiple controllers are able to work in unison via a MIDI-based communications bus. The controller also has a generic IR transmitter which can be used to control audio/visual equipment (a TV and stereo in the current setup).

RGB Node, but with Rust on an STM32

A port of RGBNode to Rust using an STM32F103 Bluepill board. It uses the usbd-serial crate to communicate with a computer, and uses the infrared crate to receive IR commands from the same repurposed TV remote. Currently it's only built as a prototype on a breadboard, and doesn't include the daisy-chained MIDI-based bus for controlling multiple units


A web-based multi-user shared hallucination, in the spirit of the MUDs, MUSHes, and MOOs of the 80's and 90's.


A simple prolog interpreter with no external depedencies, written in Rust.

Falling Rust

A falling sand game written in Rust and compiled to Web Assembly. A demo is available at here

A Bug's Life Simulator

An artificial life simulator written in Rust and using the Piston game engine. Circular creatures move around in search of food on the tiled ground with an effect that looks like bugs.

A Caml's Life Simulator

A clone of the "A Bug's Life" simulator, but written in Ocaml.


An arduino shield with Yamaha FM synthesizer chips, and MIDI input, to be used as an audio synthesizer (work in progress).

Meteor Games Website

A website written using the Meteor node.js framework, for playing some card games and tile rummy. Play in real time against other human players. This project was not fully completed and has a lot of rough edges. A demo site may be available at


An IRC bot that primarily logs the chat to text files and makes them available via the web. Logarithm also provides some helpful features such as trivia, a decision maker, a calculator, and a system of polling/voting among channel users. It was in use 24/7 from 2002 until 2021.

Super Duper Moo

A MOO, inspired by LambdaMOO, that allows users to connect with an IRC client (originally intended to have support for multiple protocols). Written in C++, it contains it's own Scheme-like scripting language and stores the object database in XML.


An obtuse and needlessly tedious interpreted language in which almost everything is a function. The interpreter is written in pure C and the language itself is vaugely Scheme-like with no specific definition. The interpreter itself can be configured for a number of different language features (different parsers, different scope rules, etc.).

Stutter IRC Client

A text-based IRC client written in C and designed for portability. The client is/was usable and was my main IRC client for a few years, before neglect and a lack of features drove me to use other programs.