In a moment of obsessive frustration, I have converted several beautiful old maps from the Toronto archives into more usable file formats. Check em out here.
New decade, new tech.
It would have been trivial to port the original project to John Resig's super-awesome Processing.js, but that doesn't work on IE. Now normally I don't care about IE support, but this seemed like a nice small project to try out a different library. So, I have rewritten semaphore using the nice-ish Raphaël library, which renders to SVG on most browsers, and VML on IE.
The lack of proper local transformations, however, I think would be a deal-breaker in a larger project. Animating a rotation of a group of objects around a pivot point specified in their local coordinates is not, as far as I can tell, possible. Keeping track of the full stack of transformations for groups (or sets as they're called by Raphaël) was fine for a project of my scale, but if you were animating a more complex jointed object would be untenable.
That said, it's early days. Hopefully Raphaël keeps getting better!