Abstract
Being able to engineer a set of components and their corresponding environmental conditions such that target entities emerge as the result of self-assembly remains an elusive goal. In particular, understanding how to exploit physical properties to create self-assembling systems in three dimensions (in terms of component movement) with symmetric and asymmetric features is extremely challenging. Furthermore, primarily top-down design methodologies have been used to create physical self-assembling systems. As the sophistication of these systems increases, it will be more challenging to use top-down design due to self-assembly being an algorithmically NP-complete problem. In this work, we first present a nature-inspired approach to demonstrate how physically encoded information can be used to program and direct the self-assembly process in three dimensions. Second, we extend our nature-inspired approach by incorporating evolutionary computing, to couple bottom-up construction (self-assembly) with bottom-up design (evolution). To demonstrate our design approach, we present eight proof-of-concept experiments where virtual component sets either defined (programmed) or generated (evolved) during the design process have their specifications translated and fabricated using rapid prototyping. The resulting mechanical components are placed in a jar of fluid on an orbital shaker, their environment. The energy and physical properties of the environment, along with the physical properties of the components (including complementary shapes and magnetic-bit patterns, created using permanent magnets to attract and repel components) are used to engineer the self-assembly process to create emergent target structures with three-dimensional symmetric and asymmetric features. The successful results demonstrate how physically encoded information can be used with programming and evolving physical self-assembling systems in three dimensions.
Similar content being viewed by others
References
Adleman L (1994) Molecular computation of solutions to combinatorial problems. Science 266(5187):1021–1024
Adleman L, Cheng Q, Goel A, Huang M-D, Kempe D, de Espanés PM, Rothemund PWK (2002) Combinatorial optimization problems in self-assembly. In: 34th ACM international symposium on theory of computing, New York
Ampatzis C, Tuci E, Tuci V, Christensen AL, Dorigo M (2009) Evolving self-assembly in autonomous homogeneous robots: experiments with two physical robots. Artif Life 15(4):1–20
Ball P (1999) The self-made tapestry pattern formation in nature. Oxford University Press, Oxford
Bentley PJ, Wakefield JP (1997) Finding acceptable solutions in the pareto-optimal range using multiobjective genetic algorithms. In: Chawdry PK, Roy R, Pant RK (eds) Soft computing in engineering design and manufacturing. Springer Verlag London Limited, Heidelberg, pp 231–240
Berger R (1966) Memoirs of the american mathematical soceity—the undecidability of the domino problem. American Mathematical Society, Providence
Bhalla N, Bentley, PJ. Programming physical self-assembling systems via physically encoded information. In: Doursat R, Sayama H, and Michel O (eds) Morphogenetic engineering: toward programmable complex systems. NECSI “Studies on Complexity” Series. Springer-Verlag (in press)
Bhalla N, Bentley PJ, Jacob C (2007) Mapping virtual self-assembly rules to physical systems. In: Proceedings of the international conference on unconventional computing (UC 2007), Bristol
Bhalla N, Bentley PJ, Jacob C (2010) Evolving physical self-assembling systems in two-dimensions. In: Proceedings of the international conference on evolvable systems (ICES 2010)
Bhalla N, Bentley PJ, Vize PD, Jacob C (2011) Staging the self-assembly process using morphological information. In: Proceedings of European conference on artificial life, Paris, France
Blasquez I, Poiraudeau J-F (2003) Efficient processing of Minkowski functionals on a 3D binary image using binary decision diagrams. J WSCG 11(1)
Boncheva M, Bruzewicz DA, Whitesides GM (2003a) Formation of chiral, three-dimensional aggregates by self-assembly of helical components. Langmuir 19:6066–6071
Boncheva M, Bruzewicz DA, Whitesides GM (2003b) Millimeter-scale self-assembly and its applications. Pure Appl Chem 75(5):621–630
Boncheva M, Andreev SA, Mahadevan L, Winkleman A, Reichman DR, Prentiss MG, Whitesides S, Whitesides GM (2005) Magnetic self-assembly of three-dimensional surfaces from planar sheets. Proc Natl Acad Sci 102(11):3924–3929
Brun Y (2008a) Constant-size tileset for solving an NP-complete problem in nondeterministic linear time. In: Garzon MH, Yan H (eds) DNA. Springer, Berlin, pp 26–35
Brun Y (2008b) Solving NP-complete problems in the tile assembly model. Theor Comput Sci 395:31–46
Buchanan A, Gazzola G, Bedau MA (2008) Evolutionary design of a model of self-assembling chemical structures. In: Krasnogor N, Gustafson S, Pelta DA, Verdegay JL (eds) Systems self-assembly: multidisciplinary snapshots. Elsevier, Amsterdam
Callicott N (2001) Computer-aided manufacture in architecture: the pursuit of novelty. Architectural Press, Oxford
Chen J, Seeman NC (1991) Synthesis from DNA of a molecule with the connectivity of a cube. Nature 350:631–633
Cook SA (1971) The complexity of theorem-proving procedures. In Proceedings of the third annual ACM symposium on theory of compuitng (STOC), pp 151–158
Cook M, Fu Y, Schweller R (2011) Temperature 1 self-assembly: deterministic assembly in 3D and probabilistic assembly in 2D. In: Proceedings of the 22nd annual ACM-SIAM symposium on discrete algorithms (SODA 2011)
Corne D, Knowles J (2007) Techniques for highly multiobjective optimisation: some nondominated points are better than others. In: Lipson H (ed) Genetic and evolutionary computing conference, London, pp 773–780
Cox DR, Snell EJ (1989) Analysis of binary data. Chapman and Hall/CRC Press, London
Crick FHC (1970) Central dogma of molecular biology. Nature 227:561–563
Culik K (1996) An aperiodic set of 13 wang tiles. Discr Math 160:245–251
Douglas SM, Dietz H, Liedl T, Högberg B, Graf F, Shih WM (2009) Self-assembly of DNA into nanoscale three-dimensional shapes. Nature 459:414–418
Garey M, Johnson DS (1979) Computers and intractability: a guide to the theory of np-completeness. W.H. Freeman and Company, San Francisco
Gates BD, Xu Q, Stewart M, Ryan D, Wilson CG, Whitesides GM (2005) New approaches to nanofabrication: molding, printing, and other techniques. Chem Rev 105:1171–1196
Gracias DH, Tien J, Breen TL, Hsu C, Whitesides GM (2000) Forming electrical networks in three dimensions by self-assembly. Science 289(5482):1170–1172
Gracias DH, Kavthekar V, Love JC, Paul KE, Whitesides GM (2002) Fabrication of micrometer-scale, patterned polyhedra by self-assembly. Adv Mater 14(3):235–238
Groß R, Dorigo M (2008) Self-assembly at the macroscopic scale. Proc IEEE 96(9):1490–1508
Hiller J, Lipson H (2009) Design and analysis of digital materials for physical 3D voxel printing. Rapid Prototyp J 15(2):137–149
Jonoska N, McColm GL (2009) Complexity classes for self-assembling flexible tiles. Theor Comput Sci 410:332–346
Jr ERJ, Eisenberg E, Mazurek D (2009) Vector mechanics for engineers: statics. McGraw-Hill Higher Education, New York
Kao M-Y, Schweller R (2006) Reducing tile complexity for self-assembly through temperature programming. In: Proceedings of the 7th annual ACM-SIAM symposium series on discrete algorithms, Miami, FL, pp 571–580
Kari L, Mahalingam K (2010) Watson–crick palindromes in DNA computing. Nat Comput 9:297–316
Karp RM (1972) Reducibility among combinatorial problems. In: Miller RE, Thatcher JW (eds) Complexity of computer computations. Plenum Press, New York, pp 85–103
Li L, Siepmann P, Smaldon J, Terrazas G, Krasnogor N (2008) Automated self-assembling programming. In: Krasnogor N, Gustafson S, Pelta DA, Verdegay JL (eds) Systems self-assembly: multidisciplinary snapshots. Studies in multidisciplinary, vol 5. Elsevier, Amsertdam, pp 281–307
Michielsen K, de Raedt H (2000) Morphological image analysis. Comput Phys Commun 132:94–103
Mitchell M (1996) An introduction to genetic algorithms. MIT Press, Cambridge
Murphy MP, O’Neill LAJ (1997) What is life?: the next fifty years: speculations on the future of biology. Cambridge University Press, Cambridge
Păun G, Rozenberg G, Salomaa A (1998) DNA computing—new computing paradigms. Springer, New York
Pelesko J (2007) Self assembly: the science of things that put themselves together. Chapman and Hall/CRC Press, Boca Raton
Pelletier O, Weimerskrich A (2002) Algorithmic self-assembly of DNA tiles and its applications to cryptanalysis. In: Proceedings of the international conference on genetic and evolutionary computation (GECCO 2002)
Rothmund PWK (2005) Design of DNA origami. In: Proceedings of the international conference on computer-aided design (ICCAD 2005)
Rothmund PWK (2006) Folding DNA to create nanoscale shapes and patterns. Nature 440:297–302
Rothmund PWK, Winfree E (2000) The program size complexity of self-assembled squares. In: ACM symposium on theory of computing (STOC 2000)
Schrödinger E (1944, reprinted 2003) What is life? with mind and matter and autobiographical sketches. Cambridge University Press, Cambridge
Seeman NC (1999) DNA engineering and its application to nanotechnology. Trends Biotechnol 17(11):437–443
Seeman NC (2004) Nanotechnology and the double helix. Sci Am 290(6):64–75
Seeman NC (2007) An overview of structural DNA nanotechnology. Mol Biotechnol 3(37):246–257
Sipser M (1997) Introduction to the theory of computation. PWS Publishing Company, Boston
Soille P (2003) Morphological image analysis. Springer, Berlin
Stepney S, Braunstein SL, Clark JA, Tyrrell T, Adamatzky A, Smith RE, Addis T, Johnson C, Timmis J, Welch P, Milner R, Partridge D (2005) Journeys in non-classical computation I: a grand challenge. Int J Parallel Emerg Distrib Syst 20(1):5–19
Stepney S, Braunstein SL, Clark JA, Tyrrell T, Adamatzky A, Smith RE, Addis T, Johnson C, Timmis J, Welch P, Milner R, Partridge D (2006) Journeys in non-classical computation II: initial journeys and waypoints. Int J Parallel Emerg Distrib Syst 21(2):97–125
Terfort A, Bowden N, Whitesides GM (1997) Three-dimensional self-assembly of millimeter-scale components. Nature 386:162–164
Terrazas G, Gheorghe M, Kendall G, Kranogor N (2007) Evolving tiles for automated self-assembly design. In: Proceedings of the 2007 IEEE congress on evolutionary computation (CEC2007) 2001–2008
Thompson, D. W. (1942, reprinted 1992). On growth and form. In: Bonner JT (abridged ed). Cambridge University Press, Cambridge
Wang H (1961) Proving theorems by pattern recognition. Bell Syst Tech J 40(1):1–41
Wang H (1965) Games, logic and computers. Sci Am 213:98–106
Watson JD, Crick FHC (1953) Molecular structure of nucleic acids—a structure for deoxyribose nucleic acid. Nature 171(4356):737–738
Whitesides GM, Boncheva M (2002) Beyond molecules: self-assembly of mesoscopic and macroscopic components. PNAS 99(8):4769–4774
Whitesides GM, Boncheva M (2005) Making things by self-assembly. MRES Bull 30:736–742
Whitesides GM, Gryzbowski G (2002) Self-assembly at all scales. Science 295:2418–2421
Winfree E (1995) On the computational power of DNA annealing and ligation. DNA Based Comput 27:199–221
Winfree E (1998a) Simulations of computing by self-assembly. In: Proceedings of 4th international meeting on DNA based computers
Winfree E (1998b) Algorithmic self-assembly of DNA. PhD dissertation, California Institute of Technology, Pasadena
Winfree E (1999) Algorithmic self-assembly of DNA: theoretical motivations and 2D assembly experiments. J Biomol Struct Dyn 11(2):263–270
Winfree E, Liu F, Wenzier LA, Seeman NC (1998) Design and self-assembly of two-dimensional DNA crystals. Nature 394(6):539–544
Wolfram S (2002) A new kind of science. Wolfram Media, Champaign
Wu H, Thalladi VR, Whitesides S, Whitesides GM (2002) Using hierarchical self-assembly to form three-dimensional lattices of spheres. J Am Chem Soc 124(48):14495–14502
Zhang Y, Seeman NC (1994) Construction of a DNA-truncated octahedron. J Am Chem Soc 5(116):1661–1669
Zykov V, Mytilinaios E, Adams B, Lipson H (2005) Self-reproducing machines. Nature 435(7038):163–164
Acknowledgments
We would like to thank the two anonymous reviewers for their thoughtful and insightful comments.
Author information
Authors and Affiliations
Corresponding author
Appendix
Appendix
The following is a list of the materials and methods for constructing physical components and their corresponding environment, as well as the physical experimental procedure (at level three, using the three level approach) for the programming and evolution experiments.
1.1 Component materials and methods
The materials, including tools, used for constructing components include:
-
Eden 333 Polyjet rapid prototyping machine
-
Vero Gray resin
-
Neodymium (NdFeB) disc magnets; 1/16″ × 1/32″ (diameter × height), grade N50
-
Magnetic pole identifier
-
Magnet placement tools
-
Vice; built from a PanaVise bench clamp mount, a PanaVise low profile base, and a PanaVise low profile head
-
Sharpie paint pens; oil based, fine point (colours: black, white, purple, yellow, green, and orange) and extra fine point (colours: red and blue)
-
Rhino3D version 4.0 computer-aided design (CAD) software
The method for constructing the components has the following eight steps:
-
1.
Create the CAD files using Rhino3D for the magnet placement tool (specifications provided in Fig. 15) and for the components, based on the specifications in Fig. 16 and in association with the components’ shape space (to determine key, lock, and neutral information locations on each component, as well as any component interaction markers on neutral shapes adjacent to information locations).
-
2.
Fabricate four magnet placement tools (two with a magnet in the centre, and two with a magnet in the corner) and the components using an Eden 333 Polyjet rapid prototyping machine with Vero Gray resin and the CAD files.
-
3.
Insert three neodymium disc magnets in each magnet placement tool, to create one tool with magnetic north polarity and the other with magnetic south polarity (identify polarity using the magnetic pole identifier).
-
4.
Paint the magnet placement tools, using the sharpie paint pens (blue for magnetic north and red for magnetic south), to complete the construction of the magnet placement tools.
-
5.
Insert magnets into the components by first identifying the appropriate 5-magnetic-bit pattern for each key and lock, and then placing magnets on the appropriate magnet placement tool (two magnets for a key shape and three magnets for a lock shape) and using the vice to insert the magnets into the appropriate location in the 5-magnetic bit pattern (Fig. 17).
-
6.
Remove the magnet placement tool and component from the vice and separate the component placement tool and the component (the extra magnet will dislodge and create an air gap on the component where the magnets were inserted; this follows the component physical encoding scheme for minimising key-to-lock error interactions provided in Table 3).
-
7.
Repeat steps seven and eight until all magnets have been inserted into all the components.
-
8.
Paint, using the sharpie paint pens, the magnets that have been placed in the components (blue for magnetic north and red for magnetic south) and any component interaction markers (refer to Fig. 4 to use the appropriate colours), to complete the construction of the components.
1.2 Environment materials and methods
The materials, including tools, used for constructing the environment include:
-
Trotec Speedy 300 Laser Engraver laser cutting machine
-
Acrylic sheet; transparent, 3 mm in height
-
Mill board; 0.8 mm in height
-
Screws; first type (5/8″ in length, pan head, 6-32 UTS, 18-8 grade stainless steel), second type (1/4″ in length, pan head, 6-32 UTS, 18-8 grade stainless steel)
-
Hex nuts; 6-32 UTS, 18-8 grade stainless steel
-
Glue; Loctite, regular, gel
-
Angle brackets; 1″, stainless steel
-
New Brunswick Scientific Excella E1 Platform Shaker
-
Adobe Illustrator Creative Suite 4
The method for constructing the environment has the following six steps:
-
1.
Create the CAD files using Adobe Illustrator for the jar rack parts (Fig. 18).
-
2.
Fabricate the jar rack parts (two bottom parts a and b, two side parts, and one top part) using a Trotec Speedy 300 Laser Engraver laser cutting machine using mill board for the jar sleeve and acrylic for the remaining environment jar rack parts, and the CAD files.
-
3.
Glue the three bottom jar rack parts together (bottom parts a both below bottom part b).
-
4.
Construct the jar rack by using the screws, hex nuts, and corner braces to secure the bottom, sides, and top parts of the jar rack, and using the screws and hex nuts to secure the jar sleeve to the top of the jar rack.
-
5.
Fold the overhang pieces of the jar rack sleeve over the holes for the jars in the top par of the jar rack.
-
6.
Place the jar rack on the shaker (Fig. 19), and secure the jar rack to the shaker using the screw on the side of shaker’s platform (these screws are supplied with the shaker), to complete construction of the environment.
1.3 Physical experimental procedure
The materials required to conduct the physical experimental procedure include:
-
Graduated cylinder
-
Mineral oil; Rogier Pharma light grade
-
Stopwatch
-
Jars; VWR clear glass wide mouth, plastic lid with rubber liner, 500 ml capacity, 91 mm by 95 mm (diameter by height)
The physical experimental procedure, for both the programming and evolutionary experiments, has the following seven steps:
-
1.
Create the CAD files using Adobe Illustrator for the jar rack parts (Fig. 19, specifications provided in Fig. 18).
-
2.
Measure 325 ml of mineral oil using the graduate cylinder for each jar used in the programming experiments (five jars) and the evolutionary experiments (3 jars).
-
3.
Place the jars of mineral oil in the jar rack (Fig. 20).
-
4.
Randomly place the components for each experiment into the appropriate jar, and secure the jar lid.
-
5.
Turn the shaker on by setting the speed to 32.5 rotations per minute, and start the stopwatch.
-
6.
Stop the shaker after 20 min.
-
7.
Record the state of each system.
Rights and permissions
About this article
Cite this article
Bhalla, N., Bentley, P.J., Vize, P.D. et al. Programming and evolving physical self-assembling systems in three dimensions. Nat Comput 11, 475–498 (2012). https://doi.org/10.1007/s11047-011-9293-6
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11047-011-9293-6