Hyperbolic Tower

This grasshopper definition is to create a Hyperbolic tower with helix partition.

01 concept

There are two features in this definition, first one is to use ‘function’ component to create geometry. The concept is explained in the image above. Basically, there are doughnut like floors through the whole tower, each has the same area. This was enabled by ‘function 2’ component that inputs are the area of the outer circles and the floor area you want. Then it will create the inner circles accordingly. Since each doughnut has the same area, the outer circumferences and the inner circumferences change at different rates.
The second feature is to create helix. Every helix created by grasshopper is basically products of data matching. By matching a series of numbers for Z-axis movement with a series of angles, you can easily create helix like geometry. The same logic can be used for creating staircase.

Enjoy grasshoppering.

02 Grasshopper definition
tower in Rhino

Tower in Rhino 02

23 thoughts on “Hyperbolic Tower

      1. Hey guys Thx for visiting my blog and leaving comments.
        You are not spoiling anything. If u guys didnt ask, i wouldn’t have known that it wasn’t up there. I was just rushing for some exams so had no time to answer.
        Thanks for doing it for me, you got it right.!

  1. I guess is exam time for everybody, I just finished mines too 🙂
    Btw, is it right that for the last two images you modified the definition? Especially in the last one you see the the elix elements are outside the floor slab and grid.

    1. Yes actually the rendering is done about two years ago and i rebuilt the definition for posting again thats why there are some differences. You have very good eyes.! At that time, I offset the floor plate circles to create a series of circles only for the helixes. Thats how.

  2. I’ve learned grasshopper a week. I really like your tower and I tried but I don’t know how to make wide column. can you comment about this?

  3. I can’t find your Explode function with input {B} and outputs {F,E,V}. I’m using Grasshopper Version April-21, 2011 Build 0.8.0010. Also, I can’t get the Planar function input{E} to accept 2 input streams. I’m new at grasshopper so maybe it’s operator error. Thanks.

    1. ‘explode’ is ‘brep component’. The actual name and the name on the component is different, that’s why it is confusing. And for the planar function, you have to annul the branch’s depth and make it same. From certain version, it has to be that way.
      Say the data list of outer circle is in (1;1;1) and the inner ones are in (1;1). Those datum can not be matched. To annul the depth, you have to use ‘flatten’ component. And by employing ‘graft’ component to make the datum tree structures. That way, the depth will be the same and the planar thing will work.

      If you are still confusing, let me know, then I will show it as an image.

      Thank you. 🙂

  4. I was wondering, what are the components that I should assign as the basic geometry? (or a vector, or a plane…. I’m so confused with this part)
    seems like I have to generate those donut shaped plates in order to create the helix? then should I set bunch of those donuts? I’ve recently started grasshopper, and the more I get into it the harder it gets.. But I’m enjoying it very much!

    Hope to hear from you soon!


    1. The basic geometry is ‘circle’ component that generates a circle or many. As you can see ‘circle’ component takes ‘p(plane)’ and ‘r(radius)’. What Plane exactly means is the plane that circle will be on (as the curve of circle has to be on one plane), and the origin of the plane is the center point of the circle. In this case, the center points (or plane that circles are on), are from a series of xy planes that have different ‘z’ values.

  5. Thanks for your reply. for some reason it wouldn’t open with my old file that I’ve been working on. but I think it works great.
    My only other question is….. about Unit partition 1, it doesn’t show up in my screen, (as someone else on the screen referred it as “wide column”- those wide strips that appear to be primary member. It is either I put down the values wrong or something, but I’m not so sure about it.

    Also, is it possible to separate the top and bottom circle with different point of origin? I want to create a helix that’s not the same throughout the parameter.

    Thanks a lot I really appreciate your post and comments.

    1. Sorry for late reply. I’ve been thinking, I guess it would be the best if I can see your grasshopper file. You can send me the file vie email, ‘geometricmind@gmail.com’ it is.
      To have the top and bottom circle separated, you have to move the series of circles toward ‘z-direction’ as much as you want, and put the circles on the either side. Then ‘merge’ the list by employing ‘merge multiple component’. In some versions, this will creates a ‘tree structured list’ just flatten it and intersect the new list with the rotated lines. It is kind of trivial solution but it would work. If you can figure it out, you can email me. 🙂

  6. I have been trying for hours, but those two equations (the one in the f(x,y) and the one in the four rotate components) dont work. I dont know how to attach my definition file, but wouldnt it be easier just to upload your gh file maybe? thank you very much, this is such an interesting definition, but i would like to be able to understand what i did wrong.
    let me know asap (will include my email address in the comment information so you can contact me)

      1. I have been trying for hours, but those two equations (the one in the f(x,y) and the one in the four rotate components) dont work. I dont know how to attach my definition file, this is such an interesting definition. I would like to be able to understand what i did wrong.

Leave a Reply to Vi Cancel reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s