algorithmic modeling for Rhino

At ICGG2014 I'm going to talk about the geometry of fitness landscapes and it was just too much bloody work to draw a fitness landscape directly in GH. Made a new component which displays an array of values as a 2.5D mesh with gradient and contour lines.

Here it shows a landscape associated with the distance between points on two curves. Where the landscape goes down to zero the curves intersect.

Views: 1426


You need to be a member of Grasshopper to add comments!

Join Grasshopper

Comment by Robert Vier on March 15, 2016 at 12:49am
thanks alberto.

there exist many interpolation schemes if you do not want to sample ALL decision space.

there also exist methods for dimensionality reduction to show a proportionally meaningful 2.5D landscape of a high dimensional problem (kohonen self organizing maps).

davids fitness landscape now reminds me of a very recent topic: quality diversity algorithms and especially MAP-elites. the idea has got something very similar (and simple but effective) to me. own question (special purpose?) answered ;)

Comment by Alberto Pugnale on March 14, 2016 at 11:22pm

@Robert Vier,

On your question 1: I don’t believe you can display in a 3D space fitness landscapes with more than 2 variables (unless you use time and therefore show up to 3 variables).

On your question 2: I think the reason to draw a fitness landscape is to highlight graphically the presence of local minima, even in a simple optimisation problem. In architectural terms, this means getting an idea of how many sub-optimal solutions there are in a problem, which helps while exploring conceptual design proposals.

Have a look at this very basic example (which I published with two colleagues on "Shell Structures for Architecture", chapter 18): a shell footbridge (24m x 4m footprint), which is generated by two parabolic section curves (the two apex heights are the two design variables). The maximum displacement of the structure under gravity load and self-weight is the objective function. Simple example, but several local minima and interesting shell forms (image below).



The expression used by David in the Number of Samples Input is a simple “x+1”. By grafting the Divide Curve Output, he got 81*81 lenghts (6,561 values). You have to make sure that number is divisible by the no. of samples. The second expression used for the Length output is only a scaling factor (my guess), to control the height of the fitness landscape drawing.


Comment by AB on May 20, 2014 at 12:01pm


I am trying to recreate your example to better understand. What were the expressions used in the length component and Num of Samples Input on the LScape component. Did you divide them by a factor to reduce the amount displayed?

I reread this

and I am wondering what "gene B and Gene A" would be for this example. I understand that the Fitness would be the distance between points on the two curves as you describe that above.

Thanks for any feedback.

Comment by Joao Calheiros on February 20, 2014 at 5:31am

This new component is available in which version of grasshopper? What's the name of it?

Best regards

Comment by Danny Boyes on February 7, 2014 at 7:23am

@David, right click in Chrome

Comment by strageor on February 7, 2014 at 6:31am

if you want to read more on this issue, you can check Varela (et al) "The Embodied Mind" chapter on natural selection (i think the 6th,...)

but deep deep waters to get meddled with

Comment by David Rutten on February 7, 2014 at 6:28am

Thanks Philipp.

Comment by strageor on February 7, 2014 at 6:26am

the ball doesnt have the choice at all... natural selection de-constructed!

Comment by Richard Schaffranek on February 7, 2014 at 5:41am

Looking forward for the component...

Comment by Philipp Ostermaier on February 7, 2014 at 5:30am

I just remember that picture was once shown in a lecture by sanford kwinter...  it is Waddington’s “Epigenetic Landscape”.





  • Add Photos
  • View All

© 2020   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service