Diverse fields such as sensor networks, peer-to-peer wireless, smart materials, distributed robotics, and biological computation all envision network systems that fill space with thousands to trillions of devices that communicate only locally. Our ability to construct such large, spatially-embedded mesh networks is rapidly overtaking our power to control them. Biological systems provide a source of inspiration in tackling this problem. Biological systems exhibit degeneracy: they have multiple ways of achieving goals. This results in great robustness and flexibility: such systems survive and repair damage, and with only a small change of parameters the same process that builds a human hand can also make a lion's paw or a bat's wing. The goal of this project is to learn and formalize engineering principles that will enable us to design and build systems that have the same level of precision, flexibility, and robustness as biological systems. The investigators intend to capture engineering principles through the design and construction of programming languages based on geometric abstractions. Geometric abstractions are used to hide the fact that the system is made up of discrete individuals and allow specification of requirements in terms of the behavior of the space occupied by the aggregate rather than the behavior of individuals. Programs expressed with their new languages and tools may have unfamiliar properties. The languages developed will be targetted progressively from simulators and robots to biology. One ultimate goal of this research is to devise languages appropriate and effective for programming biological cells. Biological cells are plentiful and have their own energy production systems. In order to be both powerful and practical in programming cells, linguistic constructs must map onto cellular mechanisms, programs must be built out of reusable components, and the runtime costs of components must be measurable. Simulators and robots will serve as a progressively more demanding testing ground towards targetting biology. The computational model underlying this work is Amorphous Computers: systems with components densely distributed through ordinary space, in which computation and local communication are cheap. The Proto Language is under development as a preliminary experiment. Proto expresses behavior in terms of four principles of design-spatial processes, aggregate state, active process maintenance, and homeostasis-while making no explicit reference to individual devices or to the communication among them. The results of this research will have a broad impact in both engineering science and applications. One inspiration for amorphous computing is the recent astonishing developments in molecular biology and in microfabrication, promising tiny cheap devices which might be mixed into materials that are produced in bulk, such as paints, gels, and concrete. The engineering principles which this work seeks to uncover will make it possible to program complex behavior in such smart materials. Another application comes from biological computation, where these principles could be applied to program biofilms to have predetermined behaviors. Finally, the principles learned during investigation may reflect back into better understanding of the biological systems which inspire them, as well as promoting better collaboration between biologists and computer scientists.

Agency
National Science Foundation (NSF)
Institute
Division of Computer and Communication Foundations (CCF)
Application #
0621897
Program Officer
Mitra Basu
Project Start
Project End
Budget Start
2006-09-01
Budget End
2009-08-31
Support Year
Fiscal Year
2006
Total Cost
$600,000
Indirect Cost
Name
Massachusetts Institute of Technology
Department
Type
DUNS #
City
Cambridge
State
MA
Country
United States
Zip Code
02139