algorithmic modeling for Rhino

I've decided to release at least an alpha version of Embryo for people to play with. It's been too long, and my dreams to get all bugs ironed out have faded away like tears in rain. Anyway, here it is :)

Embryo introduces ideas from Genetic Programming (GP) (not to be confused with genetic algorithms) to Grasshopper. It would be nice to get people thinking about working at higher levels of abstraction in a design computing context. It was the late Paul Coates who introduced me to GP in architectural design ten years ago.

Simply put, the idea is to write a program that writes a program (or in Grasshopper, generates a dataflow-based definition). There are good reasons I believe for looking into this outlined in my thesis (a kind of manual for Embryo is given in Chapter 6).

The three examples included should give an idea of what can be done, although I will upload more in due course as these only scratch the surface. Getting Embryo to work with Galapagos proved to be a bit of a challenge. The example included in the zip only shows a simple combinatorial problem that can be solved with Embryo, but the potential to find new parametric definitions for existing geometry is an exciting one.

Please note that there are some known bugs. For example, attempting to delete the component whilst active will crash Grasshopper, an event that I haven't been able to deal with yet. Also, I would advise not creating more than 1,000 components if you can help it!

One final point - I am not a software engineer and nor do I want to become one. Embryo should be seen as an idea more than a polished piece of software, but I'm curious to see if anyone cares or can use it in a meaningful way.

I will put the source up on git in due course if anyone is interested in how to manipulate components on the canvas and the suchlike, or branching to create their own Embryos.

Copyright 2015 John Harding and released under the GNU General Public License

(typical Embryo setup with random input)

(using gene pools and galapagos)

(component list)

Views: 6925


Replies to This Discussion

Congratulations. SciFi

Thanks. It's very buggy at the moment though!

Hi John !

The division between metric, topology and function genes looks incredible, I've been looking for this kind of plug-in for Grasshopper for 6 months...

Have you tried to combine it with Octopus / Octopus Explicit ? It uses genetic algorithms but as all the crossover/mutation operators are components (in the explicit version) it should be easy to adapt them to Embryo !

Looking forward to test it

Dear Hairault,

Sorry for the 2 year delay in this reply. Yes, this works using OctopusE, you can find a paper here on it. Maybe your comment inspired me, if it did then thank you!

You can also use Embryo with Biomorpher, which is a interactive EA tool for gh Cecilie Brandt-Olsen and I recently released. See here.








  • Add Photos
  • View All


  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service