algorithmic modeling for Rhino

Here are some demo's of remeshing with Plankton combined with some relaxation functions from Kangaroo.

(Similar to what I described here:

The first is a simple remeshing aiming for equal edge lengths, while the second also allows interpolation between multiple target lengths, and also optimizes for circle packing.

They require the latest version of Kangaroo to run.


More explanations to follow soon


Views: 59092


Replies to This Discussion

That's nice. 

Based on the code shown to date i guess you'd feed the crv into the c# component so you could measure to it... i hadn't thought of that. 

In fact - based on that approach you could simply use the curve instead of the naked-edges of the mesh for then finding curvature. i.e. for every point considered, find the closest point on the curve and evaluate both the distance away and the curvature there. Then use those as the edge-length weighting factors. 

Good question Will - I guess at the boundary itself one could split/collapse based on this chord-midpt-to-curve distance, but then there would still need to be something that blended these edge lengths smoothly towards the interior of the mesh.

Perhaps each edge could just look at the average of the lengths of connected edges and take that as a target length (possibly adding some small factor so that it got bigger where the detail wasn't needed).

Hello Daniel,

I just tried to achieve something similar to this (proximity to the boundary as a sizing function) by inputting points along the boundaries with small values for sizing and points on the interior with larger values.

It works more or less but the mesh is quite unstable and also the transition doesn't look as smooth as yours.

Therefore i wanted to ask which technique did you use and if should rather tweak the input mesh or the parameters of the script to improve it?

Edit: Sorry i just saw your explanation below after the post. That explains the function that you use. So I guess this is a good example where vertex colors as a sizing function would work great..

But how, exactly? I found the math for a related 2D version called Chew's Second Algorithm, and a C# port of it, so now I guess I have to learn how to make my own Grasshopper component. Why are simple elegant meshes not built into Rhino and Grasshopper already?!

nice with the naked edge valence adjuster!

Hi Daniel or other guru, 

I'm running the examples for remeshing and always I got the same error. The index was out of range: the line is: if((Visited[P.Halfedges[2 * i].StartVertex] == false) 

How I could resolve the issue?

thanks in advance


Hi Daniel,

maybe silly question: there is a way to change target valency on some edges of a mesh through some new functionalities of meshmachine or with another tool?

Thank you,



thank you for letting us play with the dynamic remeshing script, it works great! I have been looking forward to this since a long time. Is it possible to test cytoskeleton as well?


Hi Wieland,

Thanks for reminding me - I'd forgotten I still didn't actually post the script - will do so now.

This is great, thank you for your hard work Daniel.  

Im interested in using this in conjunction with Hoopsnake, is it therefore possible to perform a predetermined number of iterations as opposed to using the timer component?  Im pulling mesh vertices incrementally to other geometry and remeshing at each stage, it would be great if I could streamline this process a bit using Hoopsnake.


Hi Robert. Are you interested in the results at each step, or just the final result after a predetermined number of iterations?

Thanks for replying so soon.

I'm not interested in each iteration within the remeshing script, the results produced are good enough very quickly.  Previously I've used Kangaroo without the timer and was hoping to do the same here and to be able to experiment a bit with the number of iterations performed.






  • Add Photos
  • View All

© 2021   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service