GeoTree: Procedural Trees in Geometry Nodes

Yup. Most of the action on the trees happens in the branch nodes, with each node group being a level off the proceeding node. Since a picture is worth a thousand words…

1 node off the trunk:

1 node off the limbs

2 nodes off the limbs

…and you can use less, or stack more on from there, depending on what you’re doing. The leaves node is simply the textured objects you’ll be using to populate the tree, which can be anything from individual leaves, to whole huge branches. It uses the origin of your leaf/branch texture objects to spawn the instance off the spline, and allows you to adjust that positioning further from within the leaves node.

Think of the Fork node as like a sub-trunk, It’s a separate growth off the main trunk that can be populated with it’s own limbs, branches, and whatnot.

I did have floating leaves in my setup, because I’ve been building this primarily from the style I want to use, which is semi-realistic and painterly. This is why I said I need to focus more on realistic trees, because focusing mostly on my style will obviously introduce some drawbacks for people wanting something for, say, archvis and so on.

6 Likes

pretty sure those pics were only worth 997.3 words. >grins< i did download this, might see it turn up in a blendoodle. :smiley: thank you for all your work on this!

1 Like

Play around with it as much as you can, and offer up as much advice or critiques as you want. The more you have to say, the merrier.

1 Like

oh, i’m sure i’ll warp into all sorts of wrongness. :smiley:

1 Like

I would be the kind of end user who doesn’t change the node setup too much: I like to fiddle with predefined inputs, add my own bark or branches. I think that’s fine: not every system user is a system builder :slight_smile:

3 Likes

it is fun to play with as @Renzatic has it set up. :slight_smile:

1 Like

What I’d like to do is make a collection of different types of trees that can be added to the asset browser, not entirely dissimilar to the presets Modular Tree had built in. Make it as easy as possible for people to get into.

3 Likes

don’t forget money trees… we all need an orchard of those. :smiley:

1 Like

If I had a money tree, do you really think I’d share it?

No. No, I would not.

1 Like

why doesn’t discourse have a sad frowny emote?! lol

1 Like

:frowning_face: :slightly_frowning_face: :sob: :crying_cat_face: :cry: :disappointed_relieved: :face_holding_back_tears:

2 Likes

exactly, now why aren’t those next to the heart below? :smiley: (and yes, i’m being silly)

1 Like

Forum robot only allows us to express sadness or anger in the body of our posts. It’s just another way it keeps us all down.

1 Like

.>shaking hands at the man…err… robot<

1 Like

To double check, you don’t have a problem with me snipping some of the work you’ve done on your trees for Geotrees, right? You’ll get co-author credit, of course.

Yes, no problem at all. After loops are added (and hopefully some UI customizability) I may sell my solution. Right now I’m more interested in seeing the community explore what nodes can do.

2 Likes


Did you know you can use the built-in Smooth Hair Curves node group to smooth your generated curves? I needed a quick way to smooth some randomised tomato plant stems.

3 Likes


Sorry not about trees! Sharing my finished Tomato setup (3 parameter variations) with different types of stem. Fruit and leaves are from BagaIvy.

10 Likes

If you know how to use the Blur Attribute node, then there is definitely a way to smooth curves that is a bit lighter on the CPU compared to throwing an entire tree from the asset browser onto the problem.

Get the current curve point positions using Capture Attribute with Position, plug the output into Blur Attribute, and then plug that output into the Set Position node. It should be possible to make it a group node for future use.

4 Likes

You’re right: my “wobbly stem” group with Smooth Hair Curves was .45ms vs .18ms for Blur Attribute. I did have to add a “resample curve” (before the Capture and Blur attribute), using the number of subdivisions of the “iterations” parameter of the blur attribute node. That way, the stem has enough curve points to smooth.

1 Like