Quadrilateral Optimisation with Generative Design


I have hesitated with this post for a while. Part of me isn’t sure if I it is actually possible and to be honest, the project this relates to has moved on (and found a solution in CAD :scream:).

But this question has stuck and I cannot let go of it. Now it has become a bit of a hobby trying to figure this out, but I am not even sure where to start. Maybe someone here has an idea, whether A) it’s actually possible and B) how to go about it.

I have a (irregular) quadrilateral shape - though it doesn’t have to be irregular - which I would like to test with several variables to the geometry against some fitness test*.

These fitness tests* are:

  1. The four angles should be as close as possible to increments of 0.25°.
  2. The four sides should be as close as possible to their original length (see below).
  3. The area should be maximised.

Given are the coordinates of the first point A.
I also have a base length for all four sides, though during testing I would like these to vary in increments of 1 (+/-) - though the fewer/less they change the better (see above)

I know the quadrilateral with only four side length given is not “stable”. But that made me think that generative design should be the right approach.

Let me know should I have forgotten anything essential.
Thanks anyway.

  • forgive me if I use the wrong generative design language. This is my first proper foray in this field.
1 Like

I am still not sure if the following is really a correct solution for the issue, but it seems to work:

  1. Point A is given and I therefore can define the two sides AB and DA by providing an angle for a. This angle will be one of the inputs to the Generative Design study.
  2. All four sides’ length have another input slider that allows these sides to grow by a limited range (e.g. -5 to +5).
  3. After defining points B and D I have used acos to calculate point C over the hypotenuse BD.
  4. Based on those four points I can calculate the area (1st condition to maximise in the study) and I also calculates the three angles for b, c and d. The difference to the rounded value of these is a second set of outputs that should be optimised (minimised).

This seems to work, but maybe someone here has a better idea or can spot a mistake in my assumptions?

Quadrilateral.dyn (125.1 KB)

I have run the study with with different populations and generations, but I am still not sure if I have understood correctly how that works.

1 Like