In July 2011 I moved to Harvard University to join the School of Engineering and Applied Sciences. My new web page is here.

In the fall of 1999, along with Matt Gaetke, I took 6.111 Digital Design Laboratory. The course had a two-person final project that required each person to build a RISC-type processor from scratch using only programmable logic and discrete components. This project had to achieve some kind of coherent goal. Being mechanical engineer wannabes, Matt and I decided to spend a lot of time in the machine shop and build a robotic pool player. Oh, and we didn't have any kind of funding. Everything was either from scrap or bought out of our own pocket - hence the sawhorses and 2x4s. Also, no prefabricated computing of any kind - so no using USB to ask a Pentium IV to do all the work.

Ultimately it did not really work, because I dramatically underestimated the difficulty of the ball-identification task. We had cameras and we were trying to process the image in hardware! I would later discover when I got involved in machine learning and vision that this is a quite difficult task on a multi-gigahertz machine using state-of-the-art software. Trying to do this laying wires across a breadboard was pretty insane. It was reasonably able to find the cue ball and eight ball under decent lighting conditions, and retrospectively that was quite amazing; I didn't even have enough memory to store a single frame from the camera - I was reading NTSC signals directly!

Here are some pictures: