algorithmic modeling for Rhino

Hi guys!

I am trying to achieve a radial mesh (with a mix of clean quad and triangular faces)

that works toghether with a voronoi subdivision of the outer boundary.

If I work with RadGrid I get something not acceptable. To build up the final results I tried to summarize some steps and script them but I got stuck.

1) Voronoi subdivision

2) Voronoi vertices connected to the center

3) Tween curves between center and boundary

4) Control of U and V parameters

Point 4 is really important because it will allow me to control the strength of the springs in the two directions in kangaroo. Voronoi curve is going to be an anchor and the point is going to pull the mesh.

Views: 2528


Replies to This Discussion

Hey Watertech,

Interesting problem. Tried a few things but ran out of time before achieving what you're after. Left a slightly different approach to the initial mesh construction that might help later on.

Will try to come back to it later today.

Good Luck


Thanks for your help! Interesting approach, just watch out that if you offset the circle you get something similar to the RadGrid component. What I would like to achieve is quite different from that and you get much more regular mesh faces.

I attach the latest file I've worked on. I managed to get to two lists containing the two sets of segments that need to be tweened. The problem is that the elements of the two lists have a complete different index order and if I try to tween it gets really messy.

I think that working with a good DataTree could make it much easier but I am not really good at it.

Maybe working with each circular sector in a separate branch can facilitate the correspondance between the two segments to tween

It would be even better if the script would create radial meshes for each cell of the voronoi at the same time, but I guess that is also a matter of DataTree


Another approach that could work for you might be to utilise Weaverbird's ability to mesh and subdivide closed polylines directly (example here).

Thanks Anders, I tried to connect some closed curves directly into Wb but I get meshes that have more edges than the ones I provide.

I was able to partially solve what I asked but I still can't transform my U and V lines into a clean mesh. If the edges of the new mesh exceeds the number of lines that I have drawn Kangaroo shows an error.

I attach the latest file. The problem should be easy at this point, it is just about creating a clean mesh with a given trapezoidal buondary but I cant figure it out.

Any help would be appreciated thanks!


Afraid I don't quite follow your definition, but here's an alternative method (that takes the input polyline edges length into account). Seems to work quite well:

Edit: You'll probably need to fiddle with logic and/or weld the vertices downstream to ensure there aren't doubles at the seams.

Forgot to internalise the polyline. Attached the GH definition.


Elegant and simpler than what I suggested. Yes watertech you're right the circle approach is a bit brute force plus irrelevant. I focused at the end on making the mesh triangles. Still Anders Holden Deleuran's approach is nicer.


I gave it a go with the logic described above and put it in a loop.  I got stuck in generating a clean mesh but by baking the curves and bringing them back into GH and the Wb component the mesh was good.

Based on voronoi as input and modifiable resolution..

After Anders clean solution this will need some re-working!

Pics below:


Another approach that might get it close visually at least, one with BullAnt another with weaverbird, using ander's solution first






  • Add Photos
  • View All


  • Add Videos
  • View All

© 2023   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service