Skip to main content
Log in

Programming and evolving physical self-assembling systems in three dimensions

  • Published:
Natural Computing Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14

Similar content being viewed by others

References

  • Adleman L (1994) Molecular computation of solutions to combinatorial problems. Science 266(5187):1021–1024

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • Ball P (1999) The self-made tapestry pattern formation in nature. Oxford University Press, Oxford

    MATH  Google Scholar 

  • 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

    Google Scholar 

  • Berger R (1966) Memoirs of the american mathematical soceity—the undecidability of the domino problem. American Mathematical Society, Providence

    Google Scholar 

  • 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

    Article  Google Scholar 

  • Boncheva M, Bruzewicz DA, Whitesides GM (2003b) Millimeter-scale self-assembly and its applications. Pure Appl Chem 75(5):621–630

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  MathSciNet  MATH  Google Scholar 

  • 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

    Google Scholar 

  • Callicott N (2001) Computer-aided manufacture in architecture: the pursuit of novelty. Architectural Press, Oxford

    Google Scholar 

  • Chen J, Seeman NC (1991) Synthesis from DNA of a molecule with the connectivity of a cube. Nature 350:631–633

    Article  Google Scholar 

  • 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

    MATH  Google Scholar 

  • Crick FHC (1970) Central dogma of molecular biology. Nature 227:561–563

    Article  Google Scholar 

  • Culik K (1996) An aperiodic set of 13 wang tiles. Discr Math 160:245–251

    Article  MathSciNet  MATH  Google Scholar 

  • 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

    Article  Google Scholar 

  • Garey M, Johnson DS (1979) Computers and intractability: a guide to the theory of np-completeness. W.H. Freeman and Company, San Francisco

    MATH  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • Groß R, Dorigo M (2008) Self-assembly at the macroscopic scale. Proc IEEE 96(9):1490–1508

    Article  Google Scholar 

  • Hiller J, Lipson H (2009) Design and analysis of digital materials for physical 3D voxel printing. Rapid Prototyp J 15(2):137–149

    Article  Google Scholar 

  • Jonoska N, McColm GL (2009) Complexity classes for self-assembling flexible tiles. Theor Comput Sci 410:332–346

    Article  MathSciNet  MATH  Google Scholar 

  • 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

    Article  MathSciNet  MATH  Google Scholar 

  • Karp RM (1972) Reducibility among combinatorial problems. In: Miller RE, Thatcher JW (eds) Complexity of computer computations. Plenum Press, New York, pp 85–103

    Chapter  Google Scholar 

  • 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

    Article  MATH  Google Scholar 

  • Mitchell M (1996) An introduction to genetic algorithms. MIT Press, Cambridge

    Google Scholar 

  • Murphy MP, O’Neill LAJ (1997) What is life?: the next fifty years: speculations on the future of biology. Cambridge University Press, Cambridge

    Google Scholar 

  • Păun G, Rozenberg G, Salomaa A (1998) DNA computing—new computing paradigms. Springer, New York

    MATH  Google Scholar 

  • Pelesko J (2007) Self assembly: the science of things that put themselves together. Chapman and Hall/CRC Press, Boca Raton

    Book  MATH  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • Seeman NC (2004) Nanotechnology and the double helix. Sci Am 290(6):64–75

    Article  Google Scholar 

  • Seeman NC (2007) An overview of structural DNA nanotechnology. Mol Biotechnol 3(37):246–257

    Article  Google Scholar 

  • Sipser M (1997) Introduction to the theory of computation. PWS Publishing Company, Boston

    MATH  Google Scholar 

  • Soille P (2003) Morphological image analysis. Springer, Berlin

    MATH  Google Scholar 

  • 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

    Article  MathSciNet  MATH  Google Scholar 

  • 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

    Article  MathSciNet  Google Scholar 

  • Terfort A, Bowden N, Whitesides GM (1997) Three-dimensional self-assembly of millimeter-scale components. Nature 386:162–164

    Article  Google Scholar 

  • 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

    Google Scholar 

  • Wang H (1965) Games, logic and computers. Sci Am 213:98–106

    Article  Google Scholar 

  • Watson JD, Crick FHC (1953) Molecular structure of nucleic acids—a structure for deoxyribose nucleic acid. Nature 171(4356):737–738

    Article  Google Scholar 

  • Whitesides GM, Boncheva M (2002) Beyond molecules: self-assembly of mesoscopic and macroscopic components. PNAS 99(8):4769–4774

    Article  Google Scholar 

  • Whitesides GM, Boncheva M (2005) Making things by self-assembly. MRES Bull 30:736–742

    Article  Google Scholar 

  • Whitesides GM, Gryzbowski G (2002) Self-assembly at all scales. Science 295:2418–2421

    Article  Google Scholar 

  • Winfree E (1995) On the computational power of DNA annealing and ligation. DNA Based Comput 27:199–221

    Google Scholar 

  • 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

    Google Scholar 

  • Winfree E, Liu F, Wenzier LA, Seeman NC (1998) Design and self-assembly of two-dimensional DNA crystals. Nature 394(6):539–544

    Article  Google Scholar 

  • Wolfram S (2002) A new kind of science. Wolfram Media, Champaign

    MATH  Google Scholar 

  • 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

    Article  Google Scholar 

  • Zhang Y, Seeman NC (1994) Construction of a DNA-truncated octahedron. J Am Chem Soc 5(116):1661–1669

    Article  Google Scholar 

  • Zykov V, Mytilinaios E, Adams B, Lipson H (2005) Self-reproducing machines. Nature 435(7038):163–164

    Article  Google Scholar 

Download references

Acknowledgments

We would like to thank the two anonymous reviewers for their thoughtful and insightful comments.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Navneet Bhalla.

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. 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).

    Fig. 15
    figure 15

    Magnet placement tool specifications (counter-clockwise from top right: perspective, top, front, right views), with all construction units in mm; note two magnet locations are shown at the top of the component (centre and corner), however only one magnet location should be used per tool (two locations are show here to reduce the number of technical drawings)

    Fig. 16
    figure 16

    Component specifications showing the base component dimensions, key shape, lock shape, and interaction markers (counter-clockwise from top right: perspective, top, front, right views), with all construction units in mm

  2. 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. 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. 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. 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).

    Fig. 17
    figure 17

    Example of constructing a component during a vice press, and magnet placement tool (left) and component (right) inside the vice

  6. 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. 7.

    Repeat steps seven and eight until all magnets have been inserted into all the components.

  8. 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. 1.

    Create the CAD files using Adobe Illustrator for the jar rack parts (Fig. 18).

    Fig. 18
    figure 18

    Environment parts for jar rack (from top left to bottom: bottom part A, bottom part B, top part A, jar sleeve, and side part), with all construction units in mm

  2. 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. 3.

    Glue the three bottom jar rack parts together (bottom parts a both below bottom part b).

  4. 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. 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. 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.

    Fig. 19
    figure 19

    Photograph of the environment with the jar rack secured to the shaker, and a jar with mineral oil containing components as an example (jars of mineral oil are used to finalise the component’s environment; details are provided in physical experimental procedure)

    Fig. 20
    figure 20

    Jar configuration (top view) for the programming experiments (left, PEX1–PEX5) and the evolutionary experiments (right, EEX1–EEX3), where the labels is the figure correspond to the experiment numbers provided in Tables 5 and 8, respectively

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. 1.

    Create the CAD files using Adobe Illustrator for the jar rack parts (Fig. 19, specifications provided in Fig. 18).

  2. 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. 3.

    Place the jars of mineral oil in the jar rack (Fig. 20).

  4. 4.

    Randomly place the components for each experiment into the appropriate jar, and secure the jar lid.

  5. 5.

    Turn the shaker on by setting the speed to 32.5 rotations per minute, and start the stopwatch.

  6. 6.

    Stop the shaker after 20 min.

  7. 7.

    Record the state of each system.

Rights and permissions

Reprints 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

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11047-011-9293-6

Keywords

Navigation