This project has succeeded to: generate new techniques, improve understandings of the physical foundations, and create algorithms for self-assembling systems in 2D and 3D. We have developed a "self assembly tool box" consisting of a range of methods for micro-scale self-assembly in 2D and 3D We have shown physical demonstrations of simple 3D self-assemblies which lead to integration of heterogeneous 3D systems via self-assembly. We have developed models and algorithms ...