"spam" - a spherical "dymaxion" mapping program


Spam ("maps" backwards) tackled Buckminster Fuller's dymaxion map concept: casting the surface of the earth onto a polyhedron, typically an icosahedron, and unwrapping it to lay flat. Different initial offsets of the icosa result in different breaks on the discontinuous map. For more explanation of the map, you can watch a cool animation.

Original version was written to take a file containing lat-long coordinates of shoreline data and for each point:

  1. determine which polyhedral face the point lay on

  2. convert lat,lon to x,y,z to face local coordinates u,v

  3. draw the faces flat using the u,v data

It was implemented for the Amiga and had a clunky interface.


I'd always wanted to develop an interactive realtime 3D version of spam, and 8 years later i began. Here is a screen shot of where it got to, using texture mapping and World Up:

I wanted it to ultimately:

1. Be fully interactive
2. Be educational - should teach 3d math and map projections to the user in a friendly way, including the pros and cons of various approaches to texturing spheres
3. Run at a decent framerate on common machines

Problem: You can't use UV mapping to warp a standard lat-long rectangular surface bitmap onto an icosahedron. Look at each of the regions on the graph above on the left. No 3D renderer in the world will warp shapes like those on to a regular triangle!


Another 6 years later, i developed some solutions to this problem as part of the VTP - including a fully unfoldable Dymaxion globe.