Evolutionary Solving in 3D Design

Beside the typical 3D CAD methodology of modeling and creating forms via a human operator, an interesting way of creating 3D solution is gaining some attention. This alternative method rely on principles such as Generative Design and Evolutionary computing to derive 3D solutions.

Evolutionary Computing is a field within the scope of Artificial Intelligence or AI. One type of Evolutionary Computing is known as Genetic Algorithm. For this type of computing, the software users or programmer crafts the algorithm and the program (on its own) will attempt to evolve towards a solution. What is an algorithm? It is basically a set of instruction for a sequence of actions to be carried out by the computer.

Genetic algorithm is somewhat similar to biological evolution, in the sense that the solutions are progressive refined and gets closer to more and more ‘suitable’ states for the environment or purpose. Typically, for the algorithm to run, a Fitness Function is required. This is the function that is to be optimized.

In additional to the Fitness Function, there is a need for the types of variable parameters to be ascertained. These are often liken to genes or genomes. In Genetic algorithm application, the program will steer towards progressively optimised solution/s that are based on the problem or criteria defined (Fitness Function).

Galapagos is an Evolutionary Solver inbuilt within Grasshopper / Rhino. For those who are not familiar with Rhino 3D software, Grasshopper is a node-based visual programming aspect of Rhino. Grasshopper now operates as a free plugin for Rhino 5. But in the next version of Rhino, Grasshopper will be inbuilt within the former.  A screenshot of Galapagos / Grasshopper is shown below.

genetic algorithm

Below screenshot shows Galapagos generating solutions that are moving progressively towards the refined and optimised solution.

evolutionary computing

Well, all this seems so fanciful. So, does Galapagos for Grasshopper have practical applications and values? Yes. Take for instance, one of your design objective calls for designing a product that uses as little material as possible and yet fulfilling the other requirements. The other requirements can be scripted as variable input values. As Rhino and Grasshopper are able to calculate volume for closed objects or solids, the evolutionary solver can be used to evaluate solutions for smallest volumes as possible. This is because volume is directly corresponding to amount of material used.

By harnessing the power of an evolutionary solver such as Galapagos, a User can derive better decisions for more optimised solutions based on defined criterias and objectives.