Tuesday, December 18, 2012

Better Living Through Manifold Geometry

"Better Living Through Manifold Geometry" was my cheeky title for our editorial introduction to the Computer Journal special issue on Spatial Computing that is just about to come out.  Alas, the final article appears to be receiving only the rather more boring simple appellation of "Editorial."

Regardless of title, though, the thing that I found quite striking as I actually read through all of the articles in the special issue, looking for the common threads that drew them together, is that spatial computing really has been getting much more coherent in intellectual approach, and that manifold geometry is one of the key concepts that keeps popping up.

My take on this is that it is not enough simply to recognize the locality and spatial embedding of a distributed system.  You also need representations that will let you take advantage of that insight, and normal Euclidean geometry, like we all learned in grade school, is just not sufficient.  We need our geometry to align with the structure of how information can actually flow, and the tool for that is a manifold.  The nice thing about manifolds is that they can give you the "stretchiness" of topology, warping around whatever constraints exist in the real world, yet they can still provide most of the nice geometric properties we want, like distances, angles, paths, volumes, etc.

The only problem is that we don't grow up learning about them, so most people find manifolds to be a  difficult and non-intuitive notion. Even our maps get flattened into Euclidean projections when the surface of the Earth is really a sphere.  And of course the formal mathematical notation typically just makes things worse.  But that's one of the things that I think we're nibbling away at, bit by bit, as we work on Proto and other spatial computing languages: how to capture the power and ideas of manifolds, but wrap it up in a way that makes it easy for any programmer to take advantage of it.

No comments: