The Grove release 11

The Grove 11

The Grove now adds geometry nodes for twig duplication, and simulation layers are written to attributes – two transitions that offer more creative freedom, speed and efficiency. You get to see the tree grow while the simulation is running, for a much smoother user experience. An extra layer of wind adds a breeze to the twigs.

Continued improvements to all existing tools create an even more refined experience. Newly added tools like stash and undo will make your life easier. And the much anticipated roots tool is just so much fun to play with!

Roots

Roots typically grow below the ground, tucked away and hidden from sight. Nevertheless, when trees grow old, soil erodes and roots can be exposed. They are visually appealing and anchor the tree – roots give the tree a sense of great age.

Roots have been forever high on my wish list, but the correct way to tackle them was hard to find. The first option was simulation, but there’s not enough science to back that up, with too many unknowns. Roots are a lot harder to study than the above-ground part of a plant, and this is especially true for trees.

And it’s not just about how roots grow by themselves. Roots depend on soil structure and the different layers beneath – they also depend on the temperature gradient as you get deeper, as well as fluctuating ground water levels and the occasional rock, mineral and oxygen levels and… you get the picture. Even if it were possible, it would still be far from ideal – the many parameters would make it daunting to use and certainly not fun. And a waste of time for what we are after – a small flare of roots is all we need.

Surprisingly though, with all the above in mind, most root systems do look remarkably similar. They tend to stay close to the surface where conditions are ideal. This top layer of soil is heated in summer and is more open for oxygen to breathe. These shallow-growing roots quickly spread to the sides and reach far wider than the above-ground tree. The underground root system is very different from the above-ground tree – unlike the myth that roots are a mirror image of the tree itself, that’s just not true.

We know all this because of the work of an Austrian duo, Lore Kutschera and Erwin Lichtenegger, who spent an amazing 40 years on excavating and drawing the entire root systems of a wide range plants and also trees. The result of their life’s work is a treasure trove of information. They published several root atlases, of which “Wurzelatlas – mitteleuropäischer Waldbäume und Stäucher” (“Root atlas – Central European forest trees and shrubs”) is the one on trees.

The book is no longer in print, but several drawings have been published online here. Unfortunately these drawings don’t include the captions, leaving them without context. Luckily I own a copy of the book. The 3rd image, that of the Pinus sylvestris, seems to disprove what I just told you about shallow roots, with its roots reaching a depth of 9 meters. But this tree was (and I don’t expect it survived the dig) growing on the edge of a sandy slope. The roots are not at all that deep, but merely growing down along a slope.

Trees like Alder that are adapted to wetter locations can venture deeper underground, and this is also true for Eucalyptus which grows in warm and dry climates. The lack of water makes it vital to grow deeper, and the warmer soil makes this possible.

Deep roots are less common and most will quickly taper into thin fibers. Even horizontal roots diminish in thickness tremendously fast. Roots have no need to grow thick like above-ground branches, the underground has a different set of rules where gravity and wind are not a factor.

Generate

So with simulation off the table, the Roots tool works like a traditional tree generator and the lack of simulation makes it blazing fast.

You can generate roots at the end, when you’re happy with the tree. Roots do not grow along with your tree and do not work with Record. When your tree and roots are final you can join them to improve the root-trunk transition, with smooth normals from the Bevel node.

Geometry nodes

Geometry Nodes is a generative system with a set nodes that can be combined to build incredibly complex objects that are easy to tweak. Its first goal was to replace Blender’s outdated particle system, but that was just the beginning.

Attributes

Along with geometry nodes come attribute layers. Attributes are now supported in modifiers and materials, which for many purposes makes vertex colors and vertex groups a thing of the past. Vertex colors are just as inefficient as they are slow to create.

Attribute layers are better suited to the purpose and more importantly, much faster! So fast indeed, that I’m now adding all attribute layers – all the time. It’s not even an option, and this clears up space in the Build panel.

By not building vertex colors and vertex groups, the whole process of growing and building takes roughly 30% less time!

Twigs

Geometry nodes replace the old particle system for twig duplication – they are faster and more versatile, but the results are pretty much the same.

If you’re not ready, I added an option to switch back to the old system, to give you time to adapt your workflow. The old particle system will soon be gone though, along with this option. I will probably remove it from the next release. You can find the option in your preferences.

Breeze

Add motion to twigs to make them come to life. Breeze is a new type of wind that complements the old. When you increase the breeze, there comes a point where it looks better to combine the breeze with wind deformation to the branches. Breeze is quick and is always added, it works with Geometry Nodes.

Flexible

Instead of hard-coded node groups, I realized that it would be more flexible to append the nodes from a .blend file. That way you can customize the nodes to your liking and to fit your workflow.

More speed, more fun

An almost 30% boost in speed gave me room to play. I used a part of the time savings for an even bigger boost – but this time in perceived speed. I now draw a quick sketch of the tree while it grows, year after year. This is the perfect example of how time can be surprisingly relative – it feels so much faster! Plus you get a far better sense of how the tree develops through time.

It’s 2d sketch, because a full 3d model takes too much time. Live branches are drawn in yellow, while dead branches are drawn in red. The old tree is visible in the faded background when you regrow a tree. With both the old and new tree visible, you can better judge the effect of your tweaks.

More speed gains are in the works, let’s just say that you can set your expectations pretty high for the next release…

Surround

A tree rarely stands alone. Trees can be friends, but they also compete. They take away wind just as well as the light. Competition can be fierce, and it will leave its mark. Trees will grow more sparse and tall, while lower branches will wither and fall.

A question I often get is how to grow taller and more slender trees. Birch and spruce trees are two examples. These slender forest trees grow with harsh competition. Take them out of the woods and you’ll see a different tree. But the contrast is highest on the mighty beech – in an open field they grow impressively wide, but with surrounding trees they are barren sticks with tufts of foliage only at the top.

Competition

There are 3 levels of competition during a tree’s life:

  • An open field with plenty of light.
  • An existing surrounding, a forest or courtyard – a tough place to start.
  • A regrowing forest of equal size trees. A total reset from the ground up, no single tree taller than the other. The cause could be natural like wildfire or flood, or not so natural when harvesting for wood.

The 3 types of surroundings cause wildly different forms:

  • Wide and dense when grown in the open.
  • Sparse and gnarly on the forest floor.
  • Tall and slender when growing together.

Surroundings can also change over time, a tree’s life is long and so much can happen. Take for example a forest floor tree – sooner or later it will reach the top story. Breaching the canopy and bathing in light. With no competition, light will be plenty, branches will spread and expand to the sides. The base will be slender, the crown will be wide.

Change can also be drastic and sudden at times, when surrounding old trees die and fall to the ground. The lone survivor will bathe in the light, and it too will expand to the sides. Not only the branches at the very top, but all the way down from the base to the crown.

Changes like this cause atypical forms, beautifully different but confusing as well! Without knowing the tree’s history, it may seem like it grew in its peculiar shape without competition, completely alone. When searching for reference of species of trees, these are the pictures you typically find – lone survivors with no other trees around. Which makes sense, because it’s impossible to see a tree clearly with others in the way.

A prime example are pine trees, which lose most of their lower branches because of shade from surrounding trees. But based on confusing reference pictures, you might think that this happens just as much on free growing trees. Another good example are nursery grown trees. They start their lives packed in tight spaces, with stakes to keep them growing up straight. No need for side growth just yet, that will follow when it’s planted out in the open.

Surround

So how do we add all this to the simulation? With Surround you can add a ring of shade casting polygons that simulates surrounding trees efficiently. Control the Height, Density and Distance from the new Surround panel. Increasing Density works just like shutters, closing the ring and blocking out light.

Just like your trees themselves, the surrounding can also grow with time. Surround can be switch off or on during a tree’s life, then continue growing with more or less light.

Click on the circle icon to interactively tweak the surrounding with a visual representation. You’ll see the same graphic while you grow.

Stash and undo


Stash

Stash away your tree for safekeeping, so you are free to experiment. Retrieve the tree at a later time. A stash saves your grown trees to disk, including their parameters and their simulated structure of branches.
There are 5 stash slots – a jay may be able to remember hundreds of stashed acorns, but we’re only human.

  • Use stashes to quickly grow a set of variations and then pick the best one.
  • Use stashes to copy the trees you love to another Blender file. Not just the 3D model, but everything you need to keep editing and growing the trees.
  • Use stashes as a manual undo system, so that you can experiment more freely.

When you’re done growing a tree and you’re happy with it, you can drag the tree models outside the grove collection. That way you can grow a bunch of variations to fill your scene. But when you do this, you lose the ability to edit the tree at a later time. You can’t continue to grow or prune the tree – the simulation structure that is needed for this is attached to the grove collection and not to the individual tree.
A full stash shows the name of the used preset and the time when the stash was saved.

Undo

Undo works confusing in The Grove, it’s completely incompatible with Blender’s undo system. The reason why is that the trees cannot be saved in the .blend file, but are written to disk instead. When you use Blender’s undo, everything seems to work like expected. But when you continue growing, the trees are reloaded from disk and they start growing from the old state – so do not use Blender’s undo on your trees!

A special stash is the undo stash, which is automatically written before each operation, so each time you grow, prune, bend, draw, plant or restart. And even when you undo, which makes the undo perform like a redo. There is just one single undo step, so use it carefully, or use a stash to experiment more freely.

Tools

Turntable

You can now quickly access the turntable by double clicking the zoom tool.

The turntable stays at eye level to get a sense of scale – and it now also draws a scale figure. Surprisingly, for me at least, the tree almost always looks bigger. I’m curious to see how you experience this. The figure is 1.75 meters tall by the way.

The turntable now starts from the current view rotation instead of always skipping to front view – that was disorienting. There are now also two rings where the zoom level is stable, for a less wobbly experience.

Restart

The Restart tool works the same as before, but with 2 extra options presented when you double click it.

  • Start Fresh – reset all parameters to their defaults and reload the current preset. Just like starting a fresh new grove. This also resets properties that are not saved in a preset, like build parameters, react and record settings.
  • Single Tree – remove all placeholders and plant a single tree at the origin.

Draw

The draw tool now filters out dead branches, from which you couldn’t draw anyway. Dead branches are shown in red and the mouse now only snaps to live branches. The drawn line is now visible for a longer time, until the branch is done growing.

Prune like a ninja

Prune like a ninja – the prune tool now draws smoother swooshy lines that slowly fade after the cut. The prune line is now visible while you wait for the tree to rebuild, nice on older trees where it can take a few seconds to rebuild. And it looks cool!

Plant

New options for the Plant tool. In the Terrain panel you can now Drop trees to the ground. Take over the Slope of the terrain to make trees grow perpendicular to a hillside.

The Variation panel is for random changes.

  • Random Shift will move around trees from their perfect distribution to a more natural one.
  • Random Seed creates a new set of random offsets.
  • Delay adds a random delay before each tree starts growing, for an organic group of trees.
  • Diverge makes trees turn away from each other when they get close. You can see this in action when sliding Random Shift.

Grow together improved

A grove collection is a group of trees of a single species. You can add an extra grove collection to add a different species of tree with its own set of parameters and twigs. You can then grow all groves together as one – joining all shadow casting foliage together to make them compete for light.

Mixed-species simulation is steadily improving. The Grow Together tool from last release now has more options. It now uses the radial interface and adds a Restart All button. Before you needed to switch to each individual grove to restart each one. A small change that makes it so much nicer to use.

All presets were reworked to grow at simulation scale 1.0, good practice for growing different species together.

Next on the roadmap is to balance the presets. Species that grow well together in nature should also grow well together in The Grove, without outcompeting each other. Careful tuning of growth rates and shade tolerances will improve this in the future.

Simulation

The growth algorithm continues to evolve with new insights. Each and every preset was improved to take advantage of new features and new insights, resulting in much improved presets.

Chance

Fluently reduce the number of newly added side branches, depending on the branch’s growth power. This is a gradual effect instead of the old behavior where a shaded branch would abruptly be void of sub branches. You can find the Reduce parameter in the Add panel, it replaces the old Light Required.

The effect seems subtle at first, but becomes very visible when the tree grows older. Take for example a Willow with reduce of 0.0 and 1.0. With no reduction, it has strong upward growing side branches.

However with full reduction, lower branches add less side branches, which in turn reduces the buildup of thickness. The result is that the thinner branches will bend down more. Another effect is that less branches means less shade, so low power branches might survive longer.

Noticeable effect is on conifers. I couldn’t really use the “new” deadwood feature on them, because it would create too much thickness in older side branches. But now, these wither away naturally because of less new side branches being added.

Favor ends reduce

Most trees favor the extension of existing branches over growing new side branches. In this release, I reduce the effect of Favor Ends with the pitch of the branch. A branch that grows straight up will get the full Favor Ends, and the bigger the angle from the vertical, the more this effect is reduced and side branches are allowed to grow freely.

Tip thickness

The buildup of thickness is a key part of tree growth. It causes one branch to bend more than the other, and defines the shape of the crown. It all starts with the diameter at the tips of newly grown branches, which reduces on lower power branches.

The previous release added tip thickness Reduce, and in this release I improved this by linearly reducing the area of the cross section, instead of the diameter. The volume of new growth is now linearly dependent on power.

The difference is subtle at first, but is more drastic when the tree grows older and there is more contrast in light within the tree.

Improved handling of dead trees

Before, the trunk was always kept alive, it could always add new regenerative branches. Now it can truly die and crumble off – just like any other branch. This happens when there is no branch to take over in lateral takeover.

Stronger favor rising

Favor rising now works directly from the moment a new side branch is added and starts growing. This makes it much more powerful and very useful for conifers.

Miscellaneous

Small-scale widgets

The big widgets have proved to work really well for mouse, pen and touch input. Super nice for simple tools, not so nice for extensive tools with more options. So I went to work on creating a scaled-down version of the UI, that should still work great with pen and touch.

The slider and toggle widgets have a new small-scale counterpart. The small-scale slider works in two ways depending on your initial mouse drag direction. Move to the sides to get a regular slider, or move up or down to get a radial dial. Or simply click (or tap) the slider to also get the radial dial.

Toggles

Four panels now have a check box to toggle these feature on or off – Record, React, Surround and Auto Prune. These four optional features have a big impact, and this change makes it easy to see whether they are enabled. You can now temporarily disable a feature without messing up its settings.

Years – flushes

It’s just a simple rename, but there is an important nuance between the terms year and flush. Growth in trees occurs in quick spurts, followed by a dormant period to harden off the new growth. This cycle is called a flush.

In temperate climates, the warmth of spring triggers the first flush of the year – and for some trees this is the only flush. But if weather permits, other trees can continue to flush several times during the growing season. This is especially true in tropical climates, where trees can easily flush 3 or 4 times per year.

If you are curious to learn more about this phenomenon, the scientific name for it is polycyclism.

Small improvements and fixes

  • Growing together 2 or 3 groves would respectively double or triple the amount of years specified for growing. So 7 years would instead grow 14 or 21 years, caused by a double loop. This is fixed.
  • All factor parameters (that range from 0 to 1) are now sliders. Blender’s sliders do create visual clutter, but this is outweighed by the visual feedback. Factor sliders also work better in Blender, you can drag them smoothly.
  • Random Pitch and Random Heading are now joined into a single Random slider, greatly simplifying the Turn panel.
  • Select linked branches only selected vertices, which was invisible in face select mode. It now also selects faces.
  • Just like the new visual tweaking tool for Surround, the shade preview was converted into an operator with the radial UI. You can find it in the Shade panel, right next to the Leaf Area slider.
  • Add a Bevel node to the bark material to blend normals between intersecting geometry.
  • The amount of dead twigs is now also affected by the twig density slider.
  • Increase the likeliness of replacing an end twig with an upward alternative.
  • When growing groups of trees, the placeholder panel offered the option to delay the start of growing for individual trees. I now added Plant > Variation > Delay that adds a random delay to planted groups of trees. That gives an organic look to a grove. If you still need to tweak the individual trees in more detail, you can do that in the Custom Properties of each empty object.
  • The tropism sliders would all go down to -1. Plants almost never have this. They can be factor sliders if they are in the 0 – 1 range.
  • Do not translate attribute layer names. It will make exporting trees and working together a mess.
  • The radial interface is now independent of resolution. I added a user preference to adjust the size of widgets if they appear to small or big on your screen.
  • Increase the viewport detail of twigs. GPU’s have improved and newer twigs have less polygons.
  • Rename drop “Shaded Shoots” to simply “Shaded”. The old name was more specific to differentiate from the separate “Shaded Ends”, but that parameter was removed.
  • UV Repeat default set to 3 instead of 2.
  • The Shape Keys dial in the wind animation tool had its precision mode set to steps of 2. If you wanted to match the wind loop to an existing animation, and that animation requires 25 shape keys for a total duration of 50 frames, you wouldn’t be able to set the dial to 25. The precision of the dial is now set to 1.
  • Disable favor ends reach and remove it from the interface.
  • Stick Around preview is now redundant and removed. Dead branches are now visible in red while growing.
  • Prevent Blender’s undo from working inside tools like Prune and Draw, by shielding off the Ctrl+Z key combo.
  • Show whether Record, React, Surround and Auto Prune are enabled in the view while growing.
  • Twig view detail did not work on twig collections – it does now.
  • And many, many more tiny improvements both on the surface and under the hood that make The Grove rock solid.

Updated twigs

With the switch to geometry nodes, some twigs needed some changes. Here’s a list of twigs has been updated, if you purchased any of these twigs, please update them.

  • Pin Oak – clear rotation – add an upward twig and dead twig.
  • Paper Birch – improvements to twig variations.
  • Pacific Silver Fir – improvements to twig variations.
  • Hornbeam twig – clear rotation.
  • European Beech – clear rotation and fix grey solid shading color.
  • Japanese cherry – merge var A and B and clear scale.
  • London Plane – clear rotation and add an upward twig.
  • Robinia twig C – clear rotation.
  • Tulip tree – clear rotation and remove variation.
  • Western redcedar – clear rotation.
  • White willow – clear rotation and split twig. Optimize polygons.
  • Willow oak – clear rotation.
  • Olive – clear rotation and slight improvements.
  • Cappadocian Maple – add a variation.
  • Red oak – clear rotation.
  • Ash – clear rotation.
  • Ash One Leaf – add separate side and upward twigs and improve materials.
  • Magnolia – add a variation.