algorithmic modeling for Rhino

Leaf venation experiments in processing. Hope to port it to a python script in Rhino
(Inspired by the people from nervous: Check them out there doing awsome work!)

Views: 911


You need to be a member of Grasshopper to add comments!

Join Grasshopper

Comment by h on July 12, 2013 at 10:36am

Cool. this is all very exciting. I'm also trying to learn, with the goal that eventually this could be a standalone component. 

Yesterday I managed to figure out all the weird grasshopper data tree stuff, so that today if I can define the angle criteria you mentioned, I will try to store the tree in a tree, which maybe theoretically could allow you to reduce the radius of each branch. I think to do that though, I need to change the whole structure of my loop, so that instead of iterating over nodes, it iterates over paths or something.

Comment by Arie-Willem de Jongh on July 12, 2013 at 9:03am

Sweet Harrison looking good dude!

Yes you need to use to geometry wrapper and the iso surface component. From the output of my python script besides the points i also output the radius values, I remap them and input them in the power input from the geometry wrapper. 

That is exactly what I was trying to achieve as well. How to reconnect the branches to themselves. I inlcuded a distance condition, but it didn't work that well. What your saying makes more sense, to have a time out from the pheromone to die off as soon as a seed reaches it to give other close by seeds an oppurtunity to reach it as well. I think i have some time in the weekend I'll try some stuff in processing.


Comment by h on July 11, 2013 at 9:53am

I just found millipede last night. This is what I came up with:

Are you able to feed millipede a different radius for every point? To do this, I had to use both Millipede's Geometry Wrapper, and Iso Surface components. is that what you would do?

Also, something i'm struggling with now is to make my branches reconnect with themselves as happens in the n-e-r-v-o-u-s video:

my interpretation is that instead of killing off a food source whenever a node reaches it, they have a delayed death, and freeze the branch which has just reached it, allowing another close branch to possibly reach it, and if it does, they connect the two closest nodes. Not sure if this is correct, or how to implement it. 

Comment by Arie-Willem de Jongh on July 11, 2013 at 9:27am

Really nice Harrison! To awnser your questions:

1) I measure the angle from the next seed in respect to the previous one, if the angle is less than a certain amount it means that seed is branching of, so i reduce its radius. On a side note this is not a perfect solution and i want to find a better and cleaner way.

2) Are you familiar with millipede for grasshopper? It is a great plugin from Panagiotis Michalatos, it is fairly easy to use and it has a function called iso surface. With this option you can create an isosurface from a set of points (marching cubes). This is what i used to create the vains. Again this is not optimal as it is quite slow and hard to tweak the settings right. I managed to get a nice result but it took me 10 minutes just to get the settings right. So also this im trying to update. 

I'll send you a pm with my stuff soon in the weekend

Again really nice work!


Comment by h on July 10, 2013 at 6:33pm

so, the approach in the photo i posted previously was different from that which Nervous uses - the thing grew only from the ends, and straight towards the nearest food source to that end - so each kink in the network is where it hits a food source. 

Something that is interesting about my first approach, is that for multiple organisms, they actually end up producing the voronoi cells for their start points - I explain that discovery here:

I also (today) did one just like what Nervous does - here is that. 

I would love to share code with you, and to get my hands on your stuff. How did you handle the vein thickness?! Have you figured out a way to thicken the network into a mesh? I have tried topologizer and exoskeleton, but to no avail. 

Comment by Arie-Willem de Jongh on July 10, 2013 at 8:23am

He Harrison!

Looks nice dude! Yes I'm still working on it (some day), well the python script works, but kind of slow unfortunately. For some reason working with classes in the python plugin from grasshopper is kind of buggy. Also I have to figure out how to make the curves/dots follow the uv's from a surface or mesh. Anyway I'm doing this on the side and at the moment I'm burried in work... 

If you want i can send you my work. I hope it may be of some use :) I'm also curious how your script works, it looks like it has a different approach than the guys from nervous used. Really interesting.

Cheers dude and keep up the good work!

Comment by h on July 9, 2013 at 9:54pm

Hi, this looks promising!

I just wrote a script in ghpython today that does this, though perhaps not as well as I would like. I would love to compare with you, if you are still working on this. 

Comment by Arie-Willem de Jongh on March 9, 2013 at 6:40pm


I'm almost done with the python script, hope to share it soon, here is a sneak peak:

Comment by Omar Helmy on February 7, 2013 at 11:59pm

Awesome, looking forward to that. Thanks

Comment by Arie-Willem de Jongh on February 7, 2013 at 10:46am

Hey Omar! Thanks for your interest, at the moment I'm porting this script to a python for grasshopper script. I hope to release it quite soon. I'll keep you posted.





  • Add Photos
  • View All


  • Add Videos
  • View All

© 2022   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service