this challenge. Nanofibers allow for great adhesion on a small scale and allow for minimum power consumption when the catoms are at rest. Software Organizing all of the communication and actions between millions of sub-millimeter scale catoms requires development of advanced algorithms and programming languages. The researchers and engineers of Carnegie Mellon-Intel Claytronics Research Lab launched a wide range of projects to develop the necessary software to facilitate communication between catoms. The most important projects are developing new programming languages which work more efficiently for claytronics. The goal of a claytronics matrix is to dynamically form three-dimensional shapes. However, the vast number of catoms in this distributed network increases complexity of micro-management of each individual catom. So, each catom must perceive accurate position information and command of cooperation with its neighbors. In this environment, software language for the matrix operation must convey concise statements of high-level commands in order to be universally distributed. Languages to program a matrix require a more abbreviated syntax and style of command than normal programming languages such as C++ and Java. The Carnegie Mellon-Intel Claytronics Research Project has created two new programming languages: Meld and Locally Distributed Predicates (LDP). Meld Meld is a declarative language, a logic programming language originally designed for programming overlay networks. By using logic programming, the code for an ensemble of robots can be written from a global perspective, enabling the programmer to concentrate on the overall performance of the claytronics matrix rather than writing individual instructions for every one of the thousands to millions of catoms in the ensemble. This dramatically simplifies the thought process for programming the movement of a claytronics matrix. Locally distributed predicates (LDP) LDP is a reactive programming language. It has been used to trigger debugging in the earlier research. With the addition of language that enables the programmer to build operations in the development of the shape of the matrix, it can be used to analyze the distributed local conditions. It can operate on fixed-size, connected groups of modules providing various functions of state configuration. A program that addresses a fixed-size module rather than the entire ensemble allows programmers to operate the claytronic matrix more frequently and efficiently. LDP further provides a means of matching distributed patterns. It enables the programmer to address a larger set of variables with Boolean logic, which enables the program to search for larger patterns of activity and behavior among