Generative design
Generative design (GD) is an iterative design process that generates outputs that meet specified constraints to varying degrees. In a second phase, designers can then provide feedback to the generator that explores the feasible region by selecting preferred outputs or changing input parameters for future iterations. Either or both phases can be done by humans or software. One method is to use a generative adversarial network, which is a pair of neural networks. The first generates a trial output. The second provides feedback for the next iteration.
Algorithmic design (AD) has a very similar meaning. When used in the computer-aided architectural design context, some researchers use it synonymously with GD, some claim that AD includes GD, some consider AD as a subset of GD.
The output can be items such as images, sounds, architectural models, animation, and industrial parts. It is used in design fields such as art, architecture, communication design, and product design.
Computers can explore orders of magnitude more permutations, exploring the interactions of the enormous numbers of design elements in small increments.It mimics nature’s evolutionary approach to design through genetic variation and selection. These techniques are available even for designers with little programming experience. It is supported by commercially available CAD packages. Tools leveraging generative design as a foundation are available.
Compared with traditional top-down design approaches, generative design addresses design problems by using a bottom-up paradigm. The solution itself then evolves to a good, if not optimal, solution.
Generative design involves rule definition and result analysis which are integrated with the design process. By defining parameters and rules, the generative approach is able to provide optimized solution for both structural stability and aesthetics. Possible design algorithms include cellular automata, shape grammar, genetic algorithm, space syntax, and most recently, artificial neural network. Due to the high complexity of the solution generated, rule-based computational tools, such as finite element method and topology optimisation, are more preferable to evaluate and optimise the generated solution. The iterative process provided by computer software enables the trial-and-error approach in design, and involves architects interfering with the optimisation process.
The software then begins iterating, changing things a bit at a time, much like random mutations try out new combinations of animal DNA, and testing it against the necessary performance targets, much like life tests its DNA mutations. Over millions of generations, the software adds a little metal here, removes a little there, and checks if the part is stronger or weaker, lighter or heavier than its predecessors.
Within a surprisingly short time (a couple of hours, if given access to high-powered cloud processing), it comes back with shapes humans could never have directly designed. But they're strikingly similar to the work of nature; where there's more stress to be dealt with, they gradually become thicker. Where there's less stress, they get thinner. Support structures waste away where they're not needed, and tend to line up with the load path. In short, they start looking weirdly bony and organic.