BIANCA: a genetic algorithm to solve hard combinatorial optimisation problems in engineering The genetic algorithm BIANCA developed for design and optimisation of composite laminates is a multi-population genetic algorithm capable to deal with unconstrained and constrained hard combinatorial optimisation problems in engineering. The effectiveness and robustness of BIANCA rely on the great generality and richness in the representation of the information, i.e., the structure of populations and individuals in BIANCA, and on the way the information is extensively exploited during genetic operations. Moreover, we developed proper and original strategies to treat constrained optimisation problems through the generalisation of penalisation methods. BIANCA can also treat constrained multi-objective problems based on the construction of the Pareto frontier. Therefore, BIANCA allows us to approach very general design problems for composite laminates, but also to make a step forward to the treatment of more general problems of optimisation of materials and structures. In this paper, we describe specifically the case of optimal design of composite laminates concerning both the theoretical formulation and the numeric resolution.