Projects
This page contains a listing of projects I've worked on in the past that I have found particularly interesting. Some were meant to scratch an itch, and some were long term large scale projects that spanned many years and many people. Together, they provide a sample of things that have occupied me over recent years.
LCM
The Lightweight Communications and Marshalling package consists of a library and user-level tools for interprocess communication. Specifically, it is targeted at soft real-time systems operating on a dedicated local area network. I developed it in conjunction with Edwin Olson and David Moore for the 2007 DARPA Urban Challenge, and we have since released it as Free and Open Source software.
Camunits
Camunits consists of libraries and user-level tools for developing soft real-time machine vision applications on general purpose computers. We used it extensively as the basis for our real-time vision-based lane finding algorithms in the DARPA Urban Challenge.
DARPA Urban Challenge
The 2007 DARPA Urban Challenge was a 60-mile car race for fully autonomous vehicles. MIT entered a Land Rover LR3 and placed fourth, one of six teams to finish the race out of an original field of 89 teams. As part of the core development team, I worked on the software infrastructure, debugging and visualization tools, and perception algorithms.
Bluetooth Essentials for Programmers

While working on my Master's thesis, I had great difficulty finding introductory material on Bluetooth targeted at someone with a computer science background, and usually ended up reading through source code and specifications to find the information that I needed. Frustrated, I began assembling an online tutorial about Bluetooth, which served both as my own reference and as introductory material for others. After I finished my thesis, I expanded the tutorial into a book with the help of Larry Rudolph, and published it with Cambridge University Press.

Machine Understanding of Narrated Guided Tours
This was a research project I worked on with Seth Teller. The project studied the possibility of conveying semantic place labels to a location aware system by giving it a human-guided narrated tour. Subsequently, the system would be able to navigate through the trained area (e.g. an office building) on its own, or give directions to a human user. Sadly, I stopped working on it once I became heavily involved with the Urban Challenge.
PyBluez
PyBluez is an effort to create Python wrappers around system Bluetooth resources to allow Python developers to easily and quickly create Bluetooth applications. I originally wrote PyBluez for both my Master's thesis and for Project Oxygen at CSAIL, and now try to maintain it in my spare time.
DLTool
DLTool is a utility I wrote to help me read Chinese and Japanese web pages and newsgroups. Whenever you highlight a word or phrase in Chinese or Japanese and copy it to the clipboard, DLTool will popup and try to translate the phrase into English. It uses the MS .NET Framework and the CEDICT/EDICT language dictionaries.