Spatial Computing: Distributed Systems That Take Advantage of Our Geometric World

The modeling and control of systems composed of many computational devices is a perennial problem. This problem is growing more acute as the number and density of computing devices continues to rise rapidly. At the macro-scale, the number of computers per person continues to shoot upwards—from traditional PCs and cell-phones to appliances and consumer products to sensor networks and unmanned vehicles— and better and more pervasive networking binds them into larger aggregates. At the micro-scale, the number of devices that can be packed onto a chip continues to climb, and emerging platforms in areas such as nanotechnology and synthetic biology offer the potential to cheaply create systems of billions or trillions of semi-reliable devices. This trend even extends into the natural world, as we learn more about the complex computations carried out by aggregates of living organisms, such as the cells comprising an organism or a biofilm. In recent years, spatial computing has emerged as a promising approach to the modeling and control of these sorts of aggregate systems. The basic insight of spatial computing is simple: when the density of computing devices is high, there is a close relationship between the structure of the network of devices and the geometry of the space through which they are distributed. Put more formally: a spatial computer is any aggregate of devices in which the difficulty of moving information between any two devices is strongly dependent on the distance between them, and the functional goals of the system are generally defined in terms of the system’s spatial structure. This insight gives power in two ways: first, geometric models often enable elegant solutions to problems of robustness, adaptability, scalability, and coordination. Second, the common spatial model unites problems across a wide variety of domains, allowing results to be transferred between them.