This page lists a few of my non-academic programming projects. I am generally willing to make source code available under GPLv3 except when limited by dependency licenses.

Laser input

Drawing with a laser

When giving talks on my gravity project, at one point I want to sketch a crude figure on the computer. The most fun solution I could think of was to use a laser pointer and draw directly on the projector screen. A webcam watches the screen and, thanks to some calibration beforehand, a background thread converts laser dots in the camera picture into mouse clicks on the window. Presumably this could have been accomplished with, say, OpenCV, but rolling my own solution was more interesting.

Drawing with Kinect

In the same presentations I later sketch and manipulate a three-dimensional figure. For the input I use Kinect, a fantastically versatile toy. A minorly-modified version of MathGL provides the engine for rendering the three-dimensional figures.

Example Cartogram


Cartograms are maps in which areas are distorted to reflect some other variable: population, GDP, or electoral votes, for instance. Some examples I generated can be seen here.

Many more examples can be found at Worldmapper or, in print, in The Atlas of the Real World.

Example of TSP art

Traveling Salesman art

The idea of TSP art is to sketch a picture by stippling and then (approximately) solve the associated planar TSP. Here are some details and two examples.

Some references include the expository notes "Opt Art" and "TSP Art" and the book In Pursuit of the Traveling Salesman.