Evolved generative 3D prints • 2022
A series of generative 3D printed forms, each evolved for complexity and printability
In this work, developed with Architect and researcher Camilo Cruz Gambardella, we designed a generative software system that simulates the abstract growth of a linked colony of 2D cells. Cells absorb nutrients from their environment, allowing them to grow and divide. This process of growth and division causes the linked colony to change shape over time.
Changes to the colony's organisation over time is captured at regular time steps, forming a history of development. Each layer is placed on top of the next and sent directly to a 3D printer as G-code (the native language of 3D printers). Changing the colony's developmental parameters at each run of the system generates a different 3D form.
We used an evolutionary algorithm to explore the system’s design space. The developmental parameters form the genome and the resultant developed colony the phenotype. We evolved a population of colonies, optimising for visual complexity and "printability" (the ability of the resultant form to be 3D printed correctly).
We found that by evolving for complexity first we could obtain the most interesting forms. However often these forms were too complex to be successfully 3D printed, causing the print to fail.
To address this problem we developed a new fitness measure that estimates the likelihood of a finished form printing successfully. A fitness score of 1.0 means a perfect print, 0.9 means a good print, but with some minor artefacts or errors. Printability scores below around 0.7 would often result in a completely failed print, as shown in the image.
A successful strategy was to first evolve for the most complex forms, then to "tame them back" to being printable. This often reduced the complexity a little, but preserved the overall interesting features.
Evolutionary form with a printability score of 0.6. The form fails to print correctly.
In more recent work, we have been using MAP-Elites based quality-diversity algorithm to find forms that are both complex, but also diverse. This method gives a great range of interesting forms over pure complexity optimisation.
This video shows an example of the process. An initial form is evolved for complexity. Then we use the CMA Evolutionary Strategies algorithm to evolve the form for printability. This new evolved form is then suitable for printing.
More technical details are available in the following publication:
Jon McCormack and Camilo Cruz Gambardella: "Growing and Evolving 3D Prints", IEEE Transactions on Evolutionary Computing, vol. 26, no. 1, pp. 88-99, Feb. 2022, doi: 10.1109/TEVC.2021.3095156.