Lance's Tree Generator (Blender 3.4)

by Lance Phan in Modifier Setups

This product is a collection of Geometry Node groups that lets you quickly generate and scatter high detailed trees and plants.

By combining these tree generating nodes, you can create many different types of trees and plants, from small grass to massive weeping willow. However, the current version cannot create banana and palm trees yet since they have a different branching/leaf system.

The node groups are organized into assets so you can simply use it as an asset library.

The basic workflow to generate a tree:

Generate trunks -> Process trunks -> Distribute branches -> Process branches -> Repeat branch distributing and processing until satisfied -> Distribute leaves -> Assign materials -> Convert tree to object (optional) -> Done.

There are several processing nodes to modify the trunks or branches such as twisting, bending, splitting, etc. You can mix and match these operations to create the style of trunks/branches you like. See the list bellow for all the processing nodes.

Once generated the trees, you can use the scatter node to quickly scatter the trees onto your landscape.


In addition to the Tree generating nodes, you will also get 24 leaf templates and 10 configurable presets:

  • Aspen
  • Bamboo
  • Cactus
  • Chinaberry
  • Fern
  • Grass
  • Maple
  • Pine
  • Shrub
  • Weeping Willow

The 10 presets can generate an infinite number of variations of their respective tree type.


Bellow are the nodes included in this product.

Creation nodes, the names begin with C:

  1. C - Tree template - Create a single tree trunk
  2. C - Tree cluster - Create a cluster of tree trunks
  3. C - Distribute trees - Distribute tree trunks onto a mesh
  4. C - Distribute branch - Distribute branches onto the tree trunks or bigger branches
  5. C - Distribute leaves - Distribute leaves onto the trees
  6. C - Scatter objects - Scatter trees onto a mesh, can also scatter other objects.
  7. C - Grass blade template - Create a simple grass blade

Note: The trunks are just level 0 branches, so branch processors will also work on the trunks.

Processing nodes, the names begin with P:

  1. P - Split branches - Recursively split the newest level of branches, maximum 10 levels of splitting. This node can only be used once per branch level
  2. P - Prune branches - Prune the newest level of branches into a given shape
  3. P - Random attraction - Randomly bend the newest level of branches
  4. P - Vertical attraction - Bend the newest level of branches up or down
  5. P - Bark roughness - Randomly displace the mesh of the newest level of branches
  6. P - Twist branches - Twist the newest level of branches.
  7. P - Custom tree mesh - Replace the generated tree mesh with a custom mesh. This node should be used after all the branches were created and processed, otherwise the other processor nodes will regenerate the default mesh.
  8. P - Custom tree shape - Extrudes a custom shape along the tree branches to create a new mesh. This node should be used after all the branches were created and processed, otherwise the other processor nodes will regenerate the default mesh.
  9. P - Set tree material - Set materials for the tree. This node should be used before the P - Tree to Object node
  10. P - Optimize for viewport - Complex trees can be very heavy for the viewport to handle, use this node to turn the tree into point cloud for the viewport. During render time, this node will not run.
  11. P - Tree to Object - Use this node at the end of the tree creating process. It removes the tree data and (optionally) turn all the leaf instances into real mesh. After this node, the tree becomes a regular mesh object and can not be modified using the other tree generator nodes.

Note: Most of the processing node will only process the last level of branches.

Utility nodes, the names begin with U:

  1. U - Random per branch: Generate a random number for each branch (points on the same branch will get the same number)
  2. U - Curve to branch: Convert custom curves into branches.
  3. U - Branch info: Gives some useful data of the branches.
  4. U - Variation along branch: Produce a range of value that distribute along the branches
  5. U - Branch profile: Combine this node with a float curve to generate a custom distribution profile for the U - Variation along branch node
  6. U - Delete thin branches: Delete branches that are thinner than the given threshold.
  7. U - Import collection: Import a collection of leaves to distribute on branches or a collection of trees to scatter on to a mesh.

System nodes:

Nodes that begin with X are system nodes. These nodes are not meant to be used directly and you can just ignore them.


Generated texture coordinates:

The generated texture coordinates will only work with the default tree mesh or mesh created using the custom shape. If you use a custom mesh for the tree trunks/branches, it will use the texture coordinate of the custom mesh.

  1. UVW: Size dependent 3D texture coordinates
  2. UVW2: Size independent 3D texture coordinates. Basically, this is the normalized version of UVW
  3. UVMap: Size independent UV map, suitable for seamless textures
  4. UVMap2: The UVMap scaled to match the size of the branches
Sales 10+
Published about 1 year ago
Blender Version 3.4
License Royalty Free
Have questions before purchasing?

Contact the Creator with your questions right now.

Login to Message