A colony of cells cooperates to form a multicellular organism under
the direction of a genetic program shared by the members of the
colony. A swarm of bees cooperates to construct a hive. Humans group
together to build towns, cities, and nations. These examples raise
fundamental questions for the organization of computing systems:

How do we obtain coherent behavior from the cooperation of large
numbers of unreliable parts that are interconnected in unknown,
irregular, and time-varying ways?

What are the methods for instructing myriads of programmable entities
to cooperate to achieve particular goals?

These questions have been recognized as fundamental for
generations. Now is an opportune time to tackle the engineering of emergent order: to
identify the engineering principles and languages that can be
used to observe, control, organize, and exploit the behavior
of programmable multitudes.

We call this effort the study of
amorphous computing.

The objective of this research is to create the system-architectural,
algorithmic, and technological foundations for exploiting programmable
materials. These are materials that incorporate vast numbers of
programmable elements that react to each other and to their
environment. Such materials can be fabricated economically, provided
that the computing elements are amassed in bulk without arranging for
precision interconnect and testing. In order to exploit programmable
materials we must identify engineering principles for organizing and
instructing myriad programmable entities to cooperate to achieve
pre-established goals, even though the individual entities are
unreliable and interconnected in unknown, irregular, and time-varying
ways.

HLSIM - the High Level Simulator

HLSIM is a simulator for an ensemble of `gunk' processors which allows
programs to be written in (nearly) Scheme. The gunk processor is
distinguished by having no input or output other than a short-range
radio-like communications device, and possibly some local physical
sensors and actuators. The need for HLSIM arises out of the desire to
simulate thousands of identically-programmed processors running in
parallel at a fine grained level of interleaving, without having to
worry about the details of the interleaving.