Combining 3D Printing and Genetic Algorithms
I’m reading a fascinating press release from NYU that describes an unusual combination of 3D printing and what seems to be genetic algorithms.
What were they doing at NYU? It seems the researchers were determined to identify the best possible shape for “fast flapping wing flight”. As you can imagine, there are countless possibilities for wing shapes, and a difficult search was undertaken.
They began by starting with only 10 different possible wing configurations, which seems like a rather small number of possibilities. But hang on, this is going to work out.
These 10 designs were each 3D printed and put into physical testing by using engines to “flap” them mechanically while being precisely measured for efficiency and thrust.
So far this seems like a typical iteration on a design, something that is very commonly done with 3D printing: print several versions and pick the best one.
But no, that was not the end of the story. They explain:
“The researchers began the experiment with 10 different wing shapes whose propulsion speeds were measured. The algorithm then selected pairs of the fastest wings (‘parents’) and combined their attributes to create even-faster ‘daughters’ that were then 3D-printed and tested. They repeated this process to create 15 generations of wings, with each generation yielding offspring faster than the previous one.”
This is essentially what is known in computing as a “genetic algorithm”, a process said to mimic biological evolution. This is always done in software, where each “individual” has a specific set of quantifiable attributes. These attributes are what is used to create a new “generation”.
Genetic algorithms are very powerful, although they often take copious amounts of processing time.
But in this case, “processing” was not done. Instead the researchers were physically testing each generation, by 3D printing the “individuals” in the population.
The technique allowed the researchers to identify what they believe to be the best possible wing configuration for fast flapping.
However, I think there is a lesson here for engineers and designers: this same technique could be used to develop new mechanical parts. It is entirely possible to develop a set of measurement factors and design parameters that could be used to create and evaluate iterations of 3D printed designs.
At this time it is likely the “designing” part of this process would be manual. However, I suspect it might be quite interesting if someone created a type of CAD tool that could, given variable parameters, repeatedly create, combine and generate automatic iterations of a design, based on real-life evaluations.
This could be a way to identify designs not obvious to those preparing the initial design.