This started as a silly project for a 10hr hacking challenge (the theme was "magic"), but the end result was a lot more usable than I expected.
Stroke recognition is performed using the $1 Unistroke Recognizer algorithm from the University of Washington.