Monthly Archives: July 2016

Generating models using a Genetic Algorithm and Convolution Surfaces

A wrote a genetic algorithm that generates a tree like structure. This structure can be turned into a mesh using convolution surfaces.

Given a list of control points, the GA tries to optimize 3 things:

  1. Minimize the distance from each point to the closest branch.
  2. Minimize the sum of the length of each branch segment.
  3. Minimize the angle between adjacent branches (avoid sharp turns).

The results are very interesting:


I also tried printing the result. It took a lot of support material, but I think the result is pretty good (I had not yet cleaned all of the support material when I took the photo).