Aggregate Engineering - Compiling Ensemble-level Specifications into Catom-level Instructions

The practical use of Claytronics requires that we deal with ensembles at a high level; programming individual catoms is like coding all of Windows in assembly. Engineers will need a convenient way to specify aggregate behavior, and tools that can compile these specs into programs for each catom. The code must be robust to component failure, hardware irregularities and other engineering concerns. Ensembles must operate at reasonable time scales. The techniques must carry over to future versions of the hardware. And finally, the set of programmable phenomena must be rich enough for the wide range of uses to which Claytronics will be put.

An analogy is found in gases, where properties like pressure and temperature function as ``universal knobs'' that specify large-scale behavior and are governed by the ideal gas law. Similarly, Claytronics engineers should be able to specify ``sphere with radius = 3. Now double the radius'', or ``create the shape in file human.cly. No, make it taller than that''. We want to design, from first principles, ensembles with the ``universal knobs'' needed for applications, and to understand the laws that govern them.

This is no small task; applications will involve dozens to thousands of parameters, and reverse-engineering them is far harder than ground-up approaches. So in pursuit of the overarching goal, we are starting smaller. Simple solids like spheres and regular polyhedra are highly symmetrical and can be easily described using mathematics; we seek algorithms which will form Claytronic matter into these shapes while meeting the necessary criteria for robustness and generality. Common patterns in these algorithms will point the way to general rules underlying the ``universal knobs'' that will be needed in the future. Starting from these smaller problems, we seek to lay the foundation for all aggregate Claytronic programming.

Our work will have ramifications far beyond Claytronics. Large distributed systems, in the form of sensor nets, communication networks, and even the power grid, already have a prominent role in the modern world. Self-assembling systems, like synthetic biology and designer materials, are just around the corner. These are all examples where high-level behavior is needed from a system that is too complex for an engineer to understand, and the solutions we develop for Claytronics will provide the conceptual framework for this more general class of systems.

What methods can we apply to understand Claytronic ensembles? Statistical physics already has a rich literature on ensembles, but they have not considered complex engineering tasks. Electrical engineers have done much work in distributed systems, but the number of components is dwarfed by our problems. The spatial nature of Claytronics suggests that classical geometry will play a role, as may topology and differential geometry. Our work draws inspiration from all of these fields, as well as seeking fundamentally new ideas to address the problems of scale and engineering that make Claytronics such a (for the time being) unique challenge.