Tom MacWright

Project it Yourself

Project it Yourself is a toy for creating, interpreting, and breaking map projections. I recently gave a presentation about it to the DC Geo meetup.

My posts on understanding map projections and the construction of the mercator projection are useful background for this one.


I think that map projections are poorly understood and oddly implemented. They’re too often political statements, and people bashing mercator are looking for a ‘new default’ to adopt without thinking about the subject in depth.

And our computers understand them by codes, like EPSG:900913, stifling the instinct to experiment with them or invent new ones. The projections you have ‘to choose from’ are limited by the big list of projections your computer understands, and those you can bet on other computers having.


Project it Yourself is a first step towards an alternative system, where we create projections, understand their implementations and ramifications, and treat them as part of creating maps, rather than a setting that’s ignored.

It’s not about ‘adding more projections’ or ‘replacing proj4’. While I really like kartograph, I don’t think that snark about projection choices is productive, or that just adding more options is the future. It’s a negative trend to talk about the tradeoffs of a projection like spherical mercator without understanding the inherent balance between distortions. This is the discourse because we don’t implement projections, but we treat them like they’ve always existed. The idea that projections are choices is broken.

cassini tilt

Eventually I want the output of Project it Yourself to be generally usable - in a library that you can use with Modest Maps, Mapnik, and whatever other mapping library you have on hand. It’s not too far from reality: it’d be implemented as a langauge that’s a strict, safe subet of Javascript, only supporting numerical operations. The pet name for the project is numberlang, but there’s not much to show for it.

Bret Victor’s Inventing on Principle

Wikipedia’s concise projection definitions for making this mess more navigable