algorithmic modeling for Rhino

Hi all,


Just wanted to announce the release of a component I was busy with the past few weeks called Hoopsnake. Here's a summary:


"HoopSnake, apart from a mythical creature, is simple component for Grasshopper. What it does in principle is to create a copy of the data it receives at it's input upon user request and store it locally. This duplicate is made available through a standard Grasshopper parameter output.

What turns this operation from mundane to actually promising is the fact that the input of the component includes some custom programming to escape Grasshopper's recursive loop avoidance check.

What this means in practice is that it is possible through the use of HoopSnake to send the output of a set of components back to it's input in a looping fashion. With the help of a little bit of Data Tree / Data List manipulation, this should open up some new possibilities for iterative process modeling. "


Read more/download at Volatile Prototypes.


Please let me know of any problems/feedback/questions you may have!




Views: 24532

Replies to This Discussion

Nicely done !

Is Hoopsnake intended to work when you add new items in the lists you are working on ?

Or did i totally misunderstood how it works ? :

In this example, I am just trying to get a list of one A and 99 B.

At first i was trying to implement a simple circle packing, and intended to add a random circle to list if it wasnt intersecting another one, and stop when total number of circles would be ok, or after max N iterations.

Gee thats...bizzare!


I can reproduce and I'm working on it... Should have a solution soon.. In the meantime, could you please try the attached file and see if the characters are added normally? Thanks!



It seems to work as intended.
Really nice component :) (Elegant icon too).

Thanks a lot for your replies guys...


This issue is driving me seems to be related with the copying process, during which something's going haywire...I just need to figure out what...I'll get back to you as soon as I do.

Ok, I think I found the glitch.. Not a glitch really, just the way Grasshopper handles input data I guess..

Uploaded a new version on my website.


Please let me know if it works for you! And thanks a lot for your help!

Testing !

Is there already a way to make nested loops ?

I made one with 2 components, but to make it work i have to step the main one, loop the nested one, step, loop etc.

The way would perhaps be to set some automatic looping option on Hoopsnake so each times it sees the starting data changes it executes a complete loop.

No idea how hard it would be to code, but it would open lot possibilities.

is it possible to point to some of the possibilities?

sorry, i need a boost.

Nice man, good work!

Thank you everyone for your interest and help.


@Systemiq: This is precisely what I am planning for the next step. It should be theoretically possible, however I'm still thinking about the way to go in order to achieve maximum compatibility with the Grasshopper way of doing things. Will keep you posted!


@RWNB: I could think of recursive generation, packing problems (as Systemiq mentioned e.g. circle packing), iterative optimization, to start with. While addressing these types of problems is already possible in Grasshopper either through dedicated components or scripting, having an explicit "feedback" potential right within the Grasshopper canvas could in some cases make things more flexible and easier to read.


I will soon post a couple examples that are more representative of what *could* be possible with Hoopsnake.






  • Add Photos
  • View All


  • Add Videos
  • View All

© 2022   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service