How do I make a funnel roof structure using grasshopper

hi I’m new to grasshopper and have recently done a course on the basics however I’m struggling to produce this type of structure

I’m aware I can create the funnel shape in rhino however I want to produce the most efficient structure possible therefore I believe if I use grasshopper to design it parametrically this will give me the most optimum solution eg for column placement, roof height etc. I think this can be done using kangaroo?

any help or advice would be greatly appreciated!


In an ideal word (I would strongly suggest to start that kind of stuff with classic quad meshes and an ortho topology (grid like) … later on you can exploit other topologies):

  1. Define a grid and on the fly - interactively - define the flat modules (so to speak) and the modules that yield cones - that compose the “columns” (This is the core of the matter … but … you can’t do it without code).
  2. Define a mesh in the flat modules, the cones and the connecting rings (see images below) in such a way that K2 could start with an input Mesh as uniform as possible (you can do that with native components but is a bit tricky). In your pic above the “columns” are a pit pathetic (lack density in the conic part).
  3. Then relax the mesh via K2 using some anchor policy (that’s a big thing). Have in mind that if the input is bananas (see 2) expect a bananas output as well: K2 can’t fix a bad mesh. Depending on the spring values (and maybe some unary force [gravity]) you can obtain various results: good, bad, ugly etc etc. On a higher level of relaxation control the columns may have different spring values than the flat parts and/or different unary forces.
  4. Then comes the real pain: what to do with these “relaxed” lines (Mesh edges). This is not a task for a novice by any means (if you want some real-life solution, even an Academic real-life one) - so forget it completely for the moment. In fact you can’t do that without code.

For instance:


Thank you for your reply Peter, really appreciate it. Is there any chance you could explain in further detail? This is all really new to me so I’m unfamiliar with a lot of the stuff you mentioned… :sweat_smile:

Well … let’s start from A: get fully the gist of K2 (what is that thing, what can [and can’t] do and how). This requires 1 to 6 months. Then go to B: get familiar with ways (forget the interactive freaky part mentioned above) to define a grid, a mesh on the grid modules, a cone (in fact several), a grid on the cones … and what happens between the top lip of the cones and the boundary of the corresponding module (mentioned as “connecting rings” above).

PS: maybe by some miracle you are familiar with C# ? (or have future plans to start coding?).

1 Like

Unfortunately, I don’t have that much time :grimacing: my project is due in a few weeks! Is there a simpler way of doing this?

If the project includes designing some sort or “realistic” envelope on top (that doesn’t leak) … better find some other topic of interest (life sucks).

Other than that … well … I have at least 100 C#'s (i.e. an alien “component” that is not a component nor is a compiled add-on nor is a cluster) that do things like these … but what could the the benefit of using such a solution? And if this is an Academic project - of some sort - how you could explain to your tutor the existence of a given C#?

But hope dies last: is more than possible that someone else (or even Daniel - the K2 man) can provide some sort of example/demo using native GH components (that your tutor could understand).

On the other hand: here’s a deal.

Try to do that with components. I.e. forget the interactive part and do a grid that has in random (or not) places the “columns” - then do a mesh out of all these with variable “resolution”. So we have on hand a homogenous mesh to send to K2 (the better the start mesh the better the results).

If you do that, post the def here and I can provide some hints upon how to relax that thing (or see the attached). The result may be kitsch or good … er … depending on the K2 parameter values used. For instance this is 100% kitsch and 100% unrealistic (is using a variety of options with regard the anchors: all naked vertices, some naked vertices, some dogs, some cats etc etc):

On the other hand the attached (using a boundary and some random circles for the columns [plus MeshMachine]) is the only vault like thing available that is not carried over solely via code. A hybrid def using some native components (done for training some people in the practice for learning C#). (138.3 KB)


thank you for your help! i’ll see what i can do :laughing:

Hi again Peter!
do you know anything about karamba3d and how I can add that to the model?

Nothing at all: I use solely Bentley Systems apps for AEC BIM matters.