Tubular trees branching in grasshopper

hello all,

could someone help me create this in grasshopper please? :slight_smile: I am trying to experiment with some ideas in grasshopper … any help would be much appreciated :slight_smile:

The only thing you have to make a coarse quad mesh of the shape then subdivide with Catmull and Clark then see this

1 Like

Here’s a simple relaxed mesh, using the skeleton fattener from here to make the original mesh, Weaverbird to subdivide, and Kangaroo to relax:

To merge the branches back together for the canopy you could manually edit the vertices of the mesh before the subdivision step.


Hello Daniel! Thank you, that’s very helpful. Skeleton Fattener looks like a great component, have tried some small experiments… but just looking at the definition you attached, may I ask what the circled components are? Couldn’t find them …

Also wish you a very Merry Christmas :slight_smile:

thank you Laurent :slight_smile:

Hello @fe48,

The small component with the lightbulb is called “Show”. It can be found in the “Main” tab of Kangaroo2.
The component with the double helix is called “Entwine” and is a standard grasshopper component. It lives in the “Sets” tab under “Tree”.

Happy holidays! :santa:


so kind thank you, really appreciate :slight_smile:

1 Like

hello again both! So I have given it a try but it does not look quite like the picture you showed (which would be ideal, and is my aim!)… which is frustrating as have been trying for some time :frowning: could you advise me where I may have gone wrong, or else could I kindly have a look at that file you showed an image of, should you have it, and if you would be so kind to share? :slight_smile:

Hello @fe48,

The most critical part of this whole operation is to provide a clean mesh to Kangaroo, and to produce this flawless quad mesh, you have to provide impeccable data to the Fatten component.
What Daniel provided is mostly the Kangaroo part that happens after the mesh creation, notably the mesh relaxation and diamond subdivision.

As I understand, the Fatten component takes a couple of lines and in your case an additional sphere for each node, to define a local radius.
First of all, the curves that you input probably need to be ordered from bottom to top, top to bottom, or in some other order that you can use later. Furthermore, the curves all need to face the same direction.
Let’s say you provide a single line for each branch of the tree-like structure and the lines are all sorted from bottom to top, as well as facing from bottom to top.

The start and end points of the lines form nodes that a spheres sits on. The end point of one line and the start point of the next line(s), except for the lines with only one “neighbour”, form a common node. In this case, you probably only want to produce a single sphere for, let’s say three neighbouring lines, so you have to devise a system to avoid duplicates. To be clear the spheres are ordered in the same fashion as the nodes. There is only one sphere for each node and there is only one node for each gathering of lines.

If you have that figured out, simply plug your lines and spheres into their corresponding Fatten inputs.

tree_branching.gh (23.0 KB)

In the Kangaroo portion of the definition, the LengthFactor probably needs to be larger than 0 for something to happen. Also, you forgot to insert your anchor output A to the {0;1} input of Entwine!


Ahhh this is literally amazing of you - so kind and so helpful, I really appreciate you taking the time and effort to write and explain all this to me! Thank you so so much for giving me a better direction in which to work to help myself achieve that I was looking for.

Wish you all the best for the new year!


1 Like

You’re welcome! Happy new year to you, too.

Hello. I have troubles when trying to change anchor point in the initial mesh tree.

I tried to solve it via “Anchor component” with target points but had no success.

Change them how? Maybe upload your file.

1 Like