A constraint is a condition that the solution of an optimization problem must satisfy. In the table example we saw earlier, the constraints could be:

'the table must have four legs'

'the table must be at least 50cm wide'

'the table may be no more than 1m tall', or

'the table cannot be blue'.

Constraints give a model its realism; they ensure that a solution only includes realistic values or values that the user knows are critical to the design brief.

If a model is unconstrained, it's likely to return absurd results that arenâ€™t useful, for example, here it could be a circular table that is three metres high with a single leg that balances on a point.

Constraints are vital because they ensure that a generative design algorithm outputs something realistic and reasonable.