algorithmic modeling for Rhino

Hi Robert, 

We are using octopus to optimize for multi-dimensional objectives. The phenotype or mesh inputed to Octopus is a result of a loop created by a plug in called Anemone( changing a gene will start the loop which iterates for 5 times. The loop will output a mesh at each iteration, however the one we want to optimize is the fifth result. So we have a gate that opens when the iteration reaches 5 and passes both the mesh and the objectives to Octopus. 

When running Octopus, we are facing the following:

- Neither the labels of the axes nor the results are appearing in the Octopus solution space, although we have the axes names shown in the axes list.

- Though sometimes octopus is running, it is generating solutions more than the set population ( population of 5 individuals and 3 generation is generating more than 30 individuals and all in generation 1 ). 

- Even when reseting Octopus doesn't reset. Octopus adds new individuals/phenotypes to  the generation instead of starting fresh

- When it crashes the following is shown in the octopus error log (reduction of environmental selection did not yield the correct archive sizeError), ( I have seen the post by Stan regarding the same error message in the log).

I have attached a diagram showing the overall logic and a screen shots ( which I hope they are clear).

Views: 3761

Replies to This Discussion

I believe that one of the issues is that the gate keeps on outputing data, even in the case of a  'no data' it is outputing a None as a data type.

Hello Faisal,

yes this is a known problem with Octopus & Anemone. There might be another workaround, but I do the following:

- develop my definition with anemone for good debugging

- use octopus.E's iterator technology to loop within an evolutionary run. this iterator does not update the definition and in general is faster than anemone.

thing is that i have only released the evaluator-version of the iterator, not the implementation as a loop.

i can give you a beta version if you want





Thanks Robert, I certianly would like to have the beta version.

We are currently working on our thesis with multi-objective criteria including structural and acoustical performance.

I will update you about what happens with the loop.

Thanks again,


this is my latest build of octopus.E and the loop components.

their inputs are hard-coded. in case you need more than two data loops i can set it up.

there are also more evaluation units supported in case you might need this.




Great Robert thanks. I was feddling with the examples attached to understand how the loop works and so far working great especially that the loop is internalized and doesn't update the definition ( that is what we need).

In our definition we have 5 data loops, would that be possible to set up?



you r welcome!
if the data in the five loops is not mutually dependent, you could as well use three of the loop components in the previous gha file, no? since i will barely have time until at least sunday .. i ll try to finish the component soon for a release.


Hmm. That might be a possibility. Lets see what we can do.

Looking forward for the release. Thanks for the great work , it will certainly solve lots of  the issues with looping.( or 'the' issue of looping ).

All the best

Hi all,

I use Octopus in combination with Octopus loop for my graduation project.


I’ve attached the model I am currently working on. I want to optimize an arch in sense of shape and thickness of the panels. I use Octopus for finding an optimal shape by only changing the horizontal form finding forces in Kangaroo (not the vertical form finding forces to ensure the height will be the same). The objective for Octopus is given by the structural analysis, performed by Karamba.


Besides optimizing the shape of the arch, I also want to optimize the cross sections of the elements. For that, I first used Anemone, however, there is some delay in the output of anemone because of the computation time. So everytime when the loop in Anemone is still calculating, the geometry is changed again by Octopus. I read that Octopus Loop can be the solution for that problem. So in my attached grasshopper file I tried to implement the Loop into my model, however it does not run, where Anemone does run. The Anemone Loop and Octopus Loop are situated in the light blue groups in the figures below and also in de Grasshopper file.


As far I can tell OctopusLoop only does only one iteration. So maybe I connected something wrong.

Can you help me with this problem? I’m sure it is a small problem, but I can’t figure out what the problem is. If something is nog clear enough, please let me know.


Thank you in Advance!


Kind regards,


Thomas van Vooren


Hi Tomas! Did you solve that problem?

Hi. I'm working in a project which I have 16 modules ( 4 pavements of 16 modules, as the image bellow) and I need to remove 8 of them. My objective is to remove 8 modules in a way that I have the less perimeter as possible. The problem (that I think can be solved with a loop, I just don't know how) Is that I only can choose the modules that are in the top. I thought I should use galapagos to choose which module I should remove. But the problem is that the list of modules that I can choose change everytime I remove one. I've tested hoopsnake and octopus loop but I couldn't make it happen.

In the attachment bellow i explain a little bit more

Any ideas?







  • Add Photos
  • View All


  • Add Videos
  • View All

© 2022   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service