algorithmic modeling for Rhino

I'm trying to use the optimizer of Karamba for the beams created for these structures in Voronoi and Voronax but nothing works. Can someone pls help me? it's for my thesis and I wanted to do a comparison of these two structures using Karamba and Galapagos. But it tells me to use beams of 1m of height that's too much!

How can I tell the program to impose the max displacement at 20cm? since my structure is 50x25 and 15 tall.

Pls I need some help here

Views: 388


Replies to This Discussion

Hi Alexia,

Well first of all what is your "fitness function" goal, i.e what are you trying to reduce or maximize? is it just minimizing the displacement of your structure? Why is galapagos only controling the cross section`s dimensions and not also the parameters of your shell?. My experience with galapagos  is that the most important part is coming up with a proper fitness function which is basically a mathematical formula in which you inform the solver what you want it to search for and the optimal target for the fittest solution. 

Coming up with a good fitness function is often a challenge and it needs to be mathematically correct in order for you to have interesting and relatively precise results, otherwise it will not do what you expect it do do. Fitness functions become more critical as your model is more complex. 

I suggest that you start digging  in to genetic algorithms so you can also re-evaluate your search if you need to, and understand the idea more in depth. also Octoupus is another good evolutionary solver which focuses on multi-objective search and you can determine inside the component the min and max values of your fitness function. In this case it can be better to use Octopus over Galapagos if you have more that one fitness function as a workaround in coming up with a proper mathematical formula.

I hope this helped a little,

good luck with your work


My intention is not to redimension the shel but only to find the most appropriate beam dimension with the minimum displacement. But not of the order of millimiters as it does but in lets say 20cm of displacement. more or less.

Hi Alexia,

One thing that you could do would be to use the CrossSection Optimizer algorithm in Karamba. 

Input a list of cross-sections from which the algorithm can look for in order to perform the structural optimization according to Eurocode 3, and define the expected level of utilization you would require.

Fuerthermore, you can input a maximum deformation value (in meters) too so that the algorithm takes it into account.

Find attached a reworked file.

Hopes this helps,



yes my intention is to use both also the optimizer of Karamba and the galapagos. to see aftewards in Sap2000 which is the best solution. But I can't make it work :( :( :( since this is the simpliest example of my thesis and I can't make it work.... I'm so stressed out, since I loved Karamba and the paramatric world I don't want to surrender! thank you so much for your answer. can I make you a couple of questions?? at the cross section selector at the voice Name|id you put 0 y? also the same at the optimizer the max util u put 0.6 what that supposed to be? and the last question y at the supports you put the tx tz ty only and not all? my prov told me to impose all of them also the rotations at the base of the structure.

Thank you so much for the answer and for the file. you saved my life! :P

Hi Alexia,

It's great to know that the file worked! 

Regarding your questions, at the Name|Id (which means Name or Index) I input a zero so that the component knows that it should take the first Cross Section and assign it to my elements as my first version for design.

At the Optimizer, the 0.60 means "try to make my elements work at most at 60% (out of 100%) level of utilization".

Well, in practice it's more realistic to impose "pinned" supports (only displacements are restrained) because otherwise your foundations would need to be design to resist bending moments, and there is not such a thing as a perfectly "rigid" support (rotations and displacements fixed).

However, you can check both options and evaluate at the outcomes by yourself. That's part of the fun in Karamba!



and the last question, I've seen that you put a mesh load of 4KN going up. how come? 

4 kN/m2 was rather an arbitrary value. The direction is Z, but local to the mesh. Have please a look with the Model View component.


I did have a look, but maybe it's me that can't understand the difference through mesh and model. If I applicate a load on the mesh is not as if I applicate it at the model?  :) my question was why upwards the load at the mesh? and not downwards? not z+ but z- so it can be a load of the snow lets say and not a pressure load that goes upwards. I don't know if I explain myself....






  • Add Photos
  • View All

© 2019   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service