algorithmic modeling for Rhino

Hello everyone,

has someone a suggestion how to start with a reciprocal system on a freeform surface in grasshopper? Any suggestions are welcome.

Views: 32986


Replies to This Discussion

These are tools from the gh pluggin 'starling'. If you want to use those components you need to download and install starling from:

hi, what command is pmnei and pmdecompose? is it possible for you to post the code with the full name or with its symbol because im having a hard time understanding the an amateur still :P

My attempt, next on the list is to give the crvs some thickness, which is kind of a bitch...

now thats really well done ! u used def provided by rokko paper ?

Hey Mateusz! No I wrote myself a definition, starting with a rectangular grid on surface and some (a lot actually) list manipulations and extending lines. Ill post the def as soon as i figured out how to give it some thickness, which takes some thought.

hello good work is made in the image, but you can add the definition of grasshopper to review it, I'm looking for a definition that allows me to develop a project of the University

some pictures of what I do.


Hi Jerrimo,

I helped build many of the parametric models for this project (Dermoid by CITA and SIAL):

It's a wooden reciprocal frame (no fasteners) laid out in a hexagonal pattern and distributed across a doubly curved surface. The beams are also cambered to make them more stable, so they weave under and over the surface, which is why the pattern can be hard to see in the photo. Our process was as follows:

Essentially the stages are:

1. Project a pattern onto a doubly curved surface.

2. Smooth the pattern over the surface with dynamic relaxation (we used this:

3. Rotate each line of the pattern so it becomes reciprocal. This is probably the hardest step as you want everything to be straight and you want all the lines to terminate cleanly.

4. Turn that pattern into beams & construction drawings.


Interesting topic, and nice to see this old discussion revived...

Generating the lines can be done with just a few standard grasshopper components - no need for any scripts or plugins. Attached is a definition that should work on an arbitrary mesh.

You could relax both the initial mesh to get a smoother distribution, and the resulting network, to get straighter segments, and if you are allowing the members to be curved this is all easy enough...

However, if you are making a curved surface with non-curved members, then it is a much harder problem getting everything to meet cleanly with the right offsets for the member thickness (ie all tangent cylinders).

I think it should be possible in Kangaroo to do an optimization similar to the one described in the Rokko paper, but it might need one new force/constraint. I'm thinking of something to allow 1 point to be attached to the line between 2 other points, yet free to slide along this line...


Here's an example of using Kangaroo to straighten out the members generated by the above definition.


Hi Daniel! 

Sorry for boring you. I'm projecting a Reciprocal Frame structure for my thesis, and I would like to use this definition. However, after the relaxation, the members are not really straight, and it could be a problem for realization.

I was wondering if there is a way to straight them, for example doing a second relaxation or changing Kangaroo settings. I tried using "fit lines" but in this way members are not connected anymore.

I hope you can help me.


Hi Daniel Piker,

I like the way you made the triangular mesh topology on the freeform membrane surface. How did you manage to mesh smooth? may I know it?

Hi Daniel Piker,

I like the way you made the triangular mesh topology on the freeform membrane surface. How did you manage to mesh smooth at edges? may I know it?






  • Add Photos
  • View All

© 2021   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service