{"id":2257,"date":"2011-06-05T08:06:12","date_gmt":"2011-06-05T13:06:12","guid":{"rendered":"http:\/\/gracefulspoon.com\/blog\/?p=2257"},"modified":"2011-06-05T08:06:12","modified_gmt":"2011-06-05T13:06:12","slug":"bucky-was-right","status":"publish","type":"post","link":"http:\/\/gracefulspoon.com\/blog\/2011\/06\/05\/bucky-was-right\/","title":{"rendered":"bucky was right"},"content":{"rendered":"

\"design-space_galapagos\"<\/a>
\n
\"grasshopper<\/a>
\n
\"galapagos_results\"<\/a><\/p>\n

 <\/div>\n

I’ve used genetic algorithms for form finding with a previous project<\/a>, and that time I was using a tenuous connection between catia, modeFrontier and Robot. So I was excited to see grasshopper begin to natively implement an evolutionary solver with Galapagos<\/a>. As an initial experiment I started with a classic, something simple – I wanted to find a tessellated form that would enclose the maximum volume using the smallest surface area. I’d like to think that this would produce something unexpected, but it’s pretty much the definition of a sphere. I set up the parametric model to wiggle all over the place with various triangulated densities and differing number sided polygons at each joining segment. My hypothesis was that the form would tend toward symmetry and evolve into the aforementioned spherical shape. I believed that the polygons would tend toward the most sides possible to more closely approximate a circle, later generations evolving away from a triangle toward an icosagon<\/a>. (Just like on Flatland!<\/a>)<\/p>\n

 <\/div>\n

A couple of observations: Galapagos pretty quickly found the overall shape – smaller radii at the extremes and bulging in the middle – the beginning of a sphere. However, while it tended toward bilateral symmetry, it kept a kink in the first segment that prevented the shape from being perfectly symmetrical. I think the solver got stuck in a local minimum as opposed to a global minimum. Perhaps with a higher mutation level or letting it run for a longer amount it could have jumped out of this. On further checks I found that it was correct, after 30 generations and over 2500 iterations, the surviving croissant-like shape of the optimal designs did have a better SF:V ratio than a perfectly symmetrical design. Perhaps it had something to do with the setup of the parametric model or the way the facets resolve themselves at the extremities?<\/p>\n

 <\/div>\n

But in general my hypothesis was proven correct. Which leads to the initial problem with Galapagos. There are a lot of opportunities with this type of experiment and people more clever than me will surely do them, but when you can only solve for one objective it becomes difficult to create truly complex solutions. For instance, with my surface area\/volume problem there is only one true pareto solution. Eventually Galapagos will find it, or with enough time and a calculator I could calculate this myself. There is one single, optimal solution, it’s just hidden somewhere amongst a number of parametric sliders. Unless you start getting into multiple, competing objectives, then the pareto point becomes a curve and there are multiple valid solutions, each one involving certain trade offs and a criteria for selection. Say you wanted to find a form with the minimum srf area:volume ratio, but also that form had to have the fewest structural members, or provide the most shade on June 21st, or spatially provide the most potential revenue stream for a project stakeholder. That’s when it gets really interesting and opens the possibility for a design space that includes high performing, unexpected <\/em>results. It’s a great start, and I can’t wait to see Galapagos evolve.<\/p>\n

 <\/div>\n

Download the grasshopper definition for version 0.8.0004 here: http:\/\/gracefulspoon.com\/downloads\/Grasshopper_GALAPAGOS_TEST.rar<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"

  I’ve used genetic algorithms for form finding with a previous project, and that time I was using a tenuous connection between catia, modeFrontier and Robot. So I was excited to see grasshopper begin to natively implement an evolutionary solver with Galapagos. As an initial experiment I started with a classic, something simple – I […]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[14,17],"tags":[59,39,84,88],"_links":{"self":[{"href":"http:\/\/gracefulspoon.com\/blog\/wp-json\/wp\/v2\/posts\/2257"}],"collection":[{"href":"http:\/\/gracefulspoon.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/gracefulspoon.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/gracefulspoon.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/gracefulspoon.com\/blog\/wp-json\/wp\/v2\/comments?post=2257"}],"version-history":[{"count":29,"href":"http:\/\/gracefulspoon.com\/blog\/wp-json\/wp\/v2\/posts\/2257\/revisions"}],"predecessor-version":[{"id":2291,"href":"http:\/\/gracefulspoon.com\/blog\/wp-json\/wp\/v2\/posts\/2257\/revisions\/2291"}],"wp:attachment":[{"href":"http:\/\/gracefulspoon.com\/blog\/wp-json\/wp\/v2\/media?parent=2257"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/gracefulspoon.com\/blog\/wp-json\/wp\/v2\/categories?post=2257"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/gracefulspoon.com\/blog\/wp-json\/wp\/v2\/tags?post=2257"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}