A question in bold typeface floats across the research website of Prof. Hod Lipson, mechanical and aerospace engineering: “Can a computer ultimately augment or replace human invention?”
Lipson worked as a design engineer for five years between his undergraduate and graduate studies. While working in industry, he witnessed the creative process unfold as engineers and scientists tackled new problems with innovative solutions. Lipson became interested in the question “How are people able to be creative and come up with new designs?” His work involves studying “creative” computers, in order to understand and automate creativity.
His general approach parallels that of biological evolution: given a problem, an algorithm generates random solutions. After being supplied with some metric for success, or selective pressure, the algorithm retains only those solutions that work the best. These most successful solutions are then duplicated with small changes, and the process repeated, and the algorithm slowly hones in on an optimal solution. When a young student of mathematics plugs random guesses into an equation, picks the value that works the best, and makes repeated guesses until he converges on the right answer, he is employing a similar algorithm.
In Upson and Duffield Halls machines purchased by Ezra Cornell to teach mechanical engineering sit on display. These machines are kinematic devices that perform basic motions, like tracing a straight line. To automate the designing of such devices, Lipson’s group developed an algorithm that would combine “linkages,” repeatedly attempting to build a successful machine. The linkages look like popsicle sticks with holes drilled in both ends where they can connect to one another. The algorithm does not contain any pre-existing design — only that the end result must be a device that accomplishes the task dictated to it. The algorithm will repeatedly guess how to assemble the linkages, in an attempt to create a correct model. Of the many successful versions the computer finally generated, some are similar to those people have created. Others are completely novel.
Lipson’s approach has proven advantageous for some exciting collaborative research at Cornell. One project involved optimizing the flapping pattern of a winged robot. Airplanes rely on jet engines, rapidly spitting hot air and spent jet fuel through a nozzle, to generate thrust, so the plane can plow its rigid steel wings through the heavens, creating lift. Helicopters used rapidly spinning steel blades to generate lift. Both methods, while impressive, are dwarfed in both complexity and agility by flapping winged animals.
“Flapping flight gives you a lot of maneuverability,” Lipson emphasized. “It is easy to change direction in a very sharp way,” he continued, “which is more difficult with a helicopter.” Several motors move the wings much like muscles in a fly or bird. To choreograph the motors’ actions for an optimized flapping pattern, a computer generates random sequences. Those producing the best lift, the upward force responsible for flight, were retained and mutated for another round of selection.
Computer simulation and real world testing each have their own advantages and disadvantages. While models are relatively easy and quick to build on a computer, the simulations fall short of reality. While results of a real world test are real, building a model is relatively labor intensive and slow. Lipson is utilizing a hybrid approach in evolving a new version of the flapping robot, a project being investigated by Zhi Teoh ’09. After Teoh finishes designing the model, they will use computer simulations to evolve certain aspects, like wing shape. The results will then undergo real world tests, and the revised model again used for computer simulations.
While solutions in Lipson’s lab evolve based on what works, he also appreciates what does not.
“Experience is what you get when you didn’t get what you wanted,” Lipson said, referring to how failures provide much insight.
Lipson’s fascination with machines designing machines extends into the classroom. He currently teaches CS 7726 / MAE 6500: Evolutionary Computation and Design Automation, a seminar course on optimization and evolutionary algorithms. The course is intended for those familiar with computer science willing to tackle open ended questions involving big ideas like artificial life. Lipson will also teach MAE 225: Mechanical Synthesis this spring, a course that chooses to focus on the creative design process of solving engineering problems.