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

Hi Rico,

I can't see the images neither here, nor in the site they are hosted.

Could you insert them directly in your text? (through the image button on top of the text editor)

thank you,

nikos

Hi Nikos, Sorry about that, I have edited the post and inserted them again. Thanks

Beautiful project for anemone or hoopsnake !!

Ok, I can see them now.

I don't mean to discourage you but your project seems very advanced.

As Remy said I believe anemone or hoopsnake plugin would be required for this. These are plugins that enable loops inside grasshopper so that you could do something like:

Take the bunch of components-->Choose one randomly and place it on an appropriate joint-->keep the rest of the components-->repeat until there are no components left...

Of course this is just a very abstract description of the definition and you would actually need to set a bunch of rules like defining the appropriate joint type for each component, avoiding situations where two components intersect, etc....

For some of the above you would probably have to use Galapagos evolutionary solver as well... (explained really well by David Rutten on his blog.

So you see how this gets really compicated before it even starts.

In any case the first step would be to write down all the steps and rules of your definition so that you have something more specific.

cheers,

nikos

Rico,

Here is a starting thinking to begin,
(your project is really interesting, I was thinking all night !!)

To start I went on a 2D example, placing 3  block for one configuration.

  • GETTING STARTED I went with 3 blocks:

Create a bloc:

Defined color:

  • I create a randomized list (several possible method, here is jitter):

  • With Anemone plugin create an algo for move object:

  • Result:

Anaysis of result:

  • Animate random seed slider (0 to 10):

With gh file...

Attachments:

Thank you both for your replies!

Remy, that's brilliant, thank you for investing your time in this! This is a great base to me to start, however, judging by the complicated nature of the 2d process, the 3d aspect is going to take some thinking about.

To further complicate the process, the 3d structure needs to be structurally sound. Thinking about this in terms of the way a tree grows may help (for every incremental increase in height there is an increase in the diameter). There is also the integration of a bracing element that may need to be included. 

Would you have any ideas on how I could proceed with this?

Thanks again

For 3D it's not more complicated.

From my example I can easily go 3D by changing the starting geometry.

I do not understand:

To further complicate the process, the 3d structure needs to be structurally sound. Thinking about this in terms of the way a tree grows may help (for every incremental increase in height there is an increase in the diameter). There is also the integration of a bracing element that may need to be included. 

ok, so the project that I will be undertaking with the community will find various forms that allow people to climb to to a height of around 1.5m. This will reveal new views of the site that cannot be seen from ground level. If you look at my original image, that structure will be able to take the weight of 1 person. 

The example that you have kindly prepared is connecting blocks (or lines) on a single 2d plane but I also need to make connections in x, y and z whist making sure that the form created will be able to take weight. Does this make sense?

That is the part that I'm struggling with. 

It's so complicated, how check sure block created will be able to take weight ?

I have been testing the joints by taking models into inventor and applying forces to them. The only thing I need grasshopper to do is give me options that look convincing. not possible?

Connecting grasshopper and inventor ????

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