algorithmic modeling for Rhino

Hi guys,

I am doing a little exercise just for plain curiosity. My goal is to turn a list of points in to an organized data tree capable of drawing 4pt surfaces. For this I created a parabolic surface just for the hell of it, and I organized it in to my first data tree, nothing to hard. My next step, which I am having trouble with is organizing that data tree in to a new one so I can draw those panels. I am pretty sure that Relative item dosent do the task. Please see attached image and file so it will be more clear.

I am glad to receive any guidlines.

Thank you!


Views: 401


Replies to This Discussion

Actually Relative Item is exactly what you need. But you need 3 of them, one for each 'other' corner of the quad.


Or you could use some components to bypass all this complicated tree wizardry. But admittedly that's a lot less flexible.


Incidentally the [Shortest List] solution is better than culling the last triangular panel as I did above:

Hi David,

thank you very much for your reply. I accidentaly gave up on Relative item, because I was working with a wrong data tree. As you saw I grafted my point list before using the Relative item, so when I was using my mask notation {0;1}... etc, plus that grafted data structure the order of my points was totaly wrong. Your mesh work around is a clever solution, but I was actually hoping it doing it with Relative item, since it is a powerful component. Also its nice to use it to not only to draw different patterns on a point grid, but actually grouping the points to draw surface geometry, in my opinion thats more powerful and thank you for that example.

 I have a few questions for you.

1.  In your mask notation, for example in the last Relative item component you wrote {+1}[0], I understand why you did... but when I tried writing {0;+1}[0] just to test, it didint like it. Its kind of a funny thing but since it was only operating initialy on branch {0} wouldnt it be the same writing {+1}[0] or {0;+1}[0]?  

2. The panels drawn after using Relative Item, when baked have small surfaces that look like lines in some of the edges (see attached image). I suspect that it has something to do that when the points are grouped, some of them are redundant? This is easy to filter, but I am just curious to know why

3. Although the mesh workaround is nice and straight foreword it relies on geometry which if in more complex models things can sometimes fail. On the other hand, Relative item bases itself purely on the data structure and for that reason it can be more safe to rely on. Whats your opinion? 

Once again thank you for your time and reply



Hey Nicholas

Firstly, I would say in regards to point 3. As long as you have valid points coming into the mesh container, I can't see a scenario in which it would fail - the complexity of the model may cause it to take longer, but not fail. But from a purist perspective, I would say using the relative item method as pure data manipulation is better.

I would propose two slight variations of David's methods below:

1) with the relative item component, you can simply drop several branch offsets into the one offset value, this gives you all four points that you need in one data stream. The only issue this creates is where you reach boundary conditions, you will not obtain a list of four points, hence the prune tree component to prune tree branches with less than four corner points.

2) The second method is also a mesh method, and relies on the meshedit pulgin for the mesh from points tool - this works similarly to the surface from points tool you used, but by then exploding the mesh into its constituent faces we get the same collection of points which can be used to once again create the 4 point surface.

I would say though, the benefit of method 1 is that your data structure of rows and columns of faces remains intact, but this is also because you firstly partitioned the list prior to performing the relative item operation, and it would only be one further step to do this on the second list.






  • Add Photos
  • View All

© 2021   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service