The Alice 2

My friend Brad Grantham and I designed and built a Z80 computer.


Brad and I ported BSD UNIX to the Macintosh in 1992. This became the NetBSD/Mac port.

Markov Chain

A Markov Chain program with a twist suggested by a friend.

San Francisco Crime Map

A visual representation of crime in San Francisco.

High Dynamic Range Images

An algorithm for combining bracketed pictures to form a single image that looks like what the eye sees.

Genetic Walking Robots

A program to evolve walking robots.

Shortest Ray Tracer

Brad and I challenged each other to write the shortest ray tracer.

Solar Plotter

A plotter that uses a magnifying glass and the sun's light.

Java List Comprehensions

I modified the Java compiler to support Python-style list comprehensions.

Poetry Teacher

Learn poems by erasing one word at a time.

Book Cover

A Java program to generate the cover for a book I wanted to print.

Video Camera on Model Rocket

I taped a key chain camera to a model rocket and got some good footage of lift-off.

Jigsaw Puzzle on Laser Cutter

A program to generate a pattern to laser cut a jigsaw puzzle of a picture of my son.

Nutshell Book

I printed a book of my writings, which involved making a PDF of the content and an image for the cover.

TRS-80 Emulator

A TRS-80 Model III emulator in Go that uses a web page for its interface.

Turbo Pascal Compiler

A web-based Turbo Pascal compiler so I could run my graphics programs from 1989.

Arcade Cabinet

An arcade cabinet for my living room from an IKEA coffee table and a Raspberry Pi.

IBM 1401 Ray Tracer

A ray-tracer in assembly for the IBM 1401, a machine from 1959.


A pendulum clock made out of acrylic, with a web-based simulator.


Use a 2D laser cutter as a lathe. Uses a web-based printer driver.

Ring Light

A foldable LED ring light built out of acrylic and LED strips.

The Alice 3

A surface-mount version of the Z80 computer we built 20 years ago. Now runs CP/M!

Memoir Book

A typesetting program to print my great-uncle's memoirs.

The Alice 4

A tablet that does nothing but run mid-80's SGI demos.