Grasshopper

algorithmic modeling for Rhino

How to Write a form finding GH definition to select random elements and connect them whilst following a set of predefined rules.

Hi Guys,

I'm working on a form finding project with a local community group. The project will be similar to the projects of Julian Wild (http://www.julianwild.com/making-the-connection/) in which members of the community come together and connect pieces of timber together to form a structure. 


As a start I have created a kit of components shown in the following image. 



The colours relate to a specific joint type i.e. red - dovetail joint (end to end), blue - right angled joint, black t - joint. These joints will be cut using a robotic arm and will enable the members to connect together in a specific way. 

Depending on the order in which these members will be connected, the form will change. An example of one of the many form options is shown below.



The above example is just one option, I need to ideally write a script that will place the pieces together and explore many more of the possible options. I have very limited knowledge of grasshopper so would appreciate some ideas on where to start with this.

Thanks for your help in advance.

Rico

Views: 1672

Attachments:

Replies to This Discussion

No no, I wish that was possible. I have been exporting models as a SAT file and importing into inventor that way.

How do you do then to test?

What I understand is that inventor allows you to structurally validate the available block?

If I may pop in,

This is what I was talking about when I said that you should pinpoint all the rules regarding this structure.

There are actually many rules that a person would follow while building such a structure, some of them not so consciously... You would have to try to understand these rules and translate them to something grasshopper can understand.

For example maximum height restriction would be an easy rule to implement into your definition. Statical integrity, on the other hand,... well... not so easy.

Kangaroo plugin has a physics engine which could be useful but, as you can see, it is getting more and more complicated.

Maybe, for the time being, you should stick to implementing Remmy's solution in 3d. In my opinion this is not an easy task, you would have to figure a way to define joint types, available joint slots etc. Evaluating the results could be a following step.

Thanks for your help with this guys. For someone that is only just starting out with grasshopper and rhino, I think this is going to be well out of my reach.

If you are interested, I have also been running this conversation in a sketchup/ rubyscript forum. (I know sketchup is probably seen as the antichrist here) 

http://sketchucation.com/forums/viewtopic.php?f=15&t=60028&...

We have been generating some interesting results though....

Could this script be used as a base for a grasshopper definition?

Attachments:

Any thoughts on how to achieve this in Grasshopper?

Breaking down the Rubyscript to pseudocode or a flowchart would probably be a good start (i.e. analyse the algorithm). Then identify which geometry types are being implemented (i.e. read the Sketchup SDK) and find equivalent types in Grasshopper/RhinoCommon. Unfortunately I don't think there are too many Ruby/Sketchup folks around here, but if you can gain a better of idea of what the script is actually doing and which types are being implemented I suspect you'll see more of a response. Luckily it is a pretty short script ;)

I have no knowledge of Rubyscript but by looking at the image I can't see how this script does what you are after. It doesn't seem to take into account the different joint types you defined, does it? (the rods seem to be connected in random angles)

One more question I have is: what is the difference between green and blue joints? (in your 1st image they both seem to be 90 degrees joints)

Thanks,

nikos

RSS

About

Translate

Search

Photos

  • Add Photos
  • View All

Videos

  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service