Tom MacWright

tom@macwright.com

Maze

This little experiment… I don’t even have a great explanation. But, at the time it seemed like the obvious thing to do, and it came together lightning-fast.

In short, it’s a very, very large maze - with 64,800 empty spaces. It is solvable, but I’d imagine it being pretty draining.

It’s not super-challenging to build - Maze generation is a hard problem, so I used an existing Javascript implementation from the ever-useful rosettacode.org . Since there aren’t good bindings for OGR in Javascript, I used the excellent Shapely project again, like I did with my running map. The code for translating ASCII mazes into shapefiles is quite simple.

Also like the running map, I’m doing hacky geospatial cheats - this is translating into EPSG:4326 space, which I then translate to so-called Spherical Mercator. So, you can see some Tissot-style distortion in the final product because of the clash of systems. Here, I think it’s somewhat neat, but in the future I’m going to see how some mercator math works out, possibly also yielding pixel accuracy.

That said, it’s a huge maze. There are more complex games to come, but I’m honestly not much of a gamer - more a fan of absurdist constructions like Progress Quest.

And, of course, it’s rendered by TileMill and the only reason why I can post it on the internet and not worry about things breaking is because of TileStream Hosting keeping it online and super-fast. For the map, I’m using old standbys Modest Maps and easey (which just got a big deployment at our new developmentseed.org).

But for those up to the challenge, try it out as a full-screen app. Bonus points for building a fast maze-solving bot in Canvas / Modest Maps.