Generative design 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. The output can be items such as s, 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.