The Grove Release 8
Trees have had over 200 million years to evolve into all the beautiful shapes and characters we see around us today. Dinosaurs have come and gone, continents were torn apart, and through it all, trees stood tall. Trees helped shape our world, our atmosphere, and a livable climate. Trees provide us with wood, fire, fruit, nuts, shade, beauty and oxygen to breathe…
So it’s no wonder that trees are so close to our hearts, and a fascinating topic for scientific research. We now know more about trees than we ever did, but there are still many mysteries left to unravel.
For the past 5 years, I’ve been trying to solve the puzzle of tree growth – through relentless trial and error I’ve implemented a great number of hypotheses of scientific papers, books, and many of my own observations. It’s been quite a ride so far and big chunks of the puzzle were solved in each successive release. This new release, The Grove 8, fills in many gaps – it connects the islands and greatly amplifies what was already in place – to reveal the bigger picture.
I’m sure there’s still plenty to discover in the coming years, and these notes are a logbook of sorts that will let you in on the journey of discovery. So continue reading to see all that is shiny and new! But first… did I mention growth animation?
For the first time, we can watch natural tree growth in mere minutes, bringing seemingly inanimate organisms to life!
There was a big irony in the way you used to grow trees with The Grove… The unique year-by-year simulation is a beautiful animation unfolding right before your eyes. But there was no way to record this animation, and no way to render it. Well you can now! The reason why this has been so hard to do can be found in The Grove’s unique, realistic way of growth, with its constantly varying amounts of polygons caused by the dropping and adding of branches.
And so began the long search for a way to tackle this the right way, while still being fast and flexible. The final system I implemented is relatively simple, fast to play back, exports well to Alembic and it is flexible. It works with every other feature and is now an integral part of The Grove. Swapping twigs or textures, scaling the simulation – even manual pruning during the simulation all work flawlessly.
Just flip on Record and start growing. The Grove will save your growing tree to a sequence of year-by-year objects. Each of these objects is made visible for only a couple of frames. The Grove then smoothly blends the years with two shape keys – it blends from an initial spring state to a full grown summer shape.
The speed of growth is controlled with the Interval parameter, it defines the number of frames between each year. A single yearly object is visible during this time and this is also the time it takes to smoothly blend between spring and summer shapes. You can change the interval at any time to instantly update the timing of the entire animation.
The growth animation is buttery smooth and you can grow trees as slow as you like. But when using twigs, keep in mind that new ones pop into existence every year. For bigger twigs, higher speeds work best.
It’s great fun to grow trees that react to their environment – many effects that can be simulated this way. But still one of the most popular feature request was to have more flexibility in this area.
As a side effect to growth animation, you can now even animate your force objects through time. This only works when you enable Record and set Interval to 1. Have fun with that!
Growing inside a shape, both attracting, deflecting and blocking growth. When growing in a shape like this, it’s best to disable bending.
Another improvement to this area is in the falloff of forces. Attract and deflect now have a realistic quadratic falloff.
Trees not only look better – you also feel more in control while tweaking your trees. A number of strikingly small additions tie it all together. Extremes like weeping willows, quaking aspens and slender conifers are easier to create and tweak, and they now grow more natural than ever before.
Probably the biggest change in this release has a profound impact on how your trees grow. In short: the vigor of a branch is now corrected to last year’s growth. When a branch has barely grown in length, it has less leaf area, and this means that there is less energy to grow buds for the next generation of branches. This makes it much harder for a new side shoot to become a strong lead branch. To escape the initial suppression imposed by their leader, only the most successful and brightest branches will survive the cut.
The improvement made in this area makes it much easier to tweak parameters, you feel in control. Parameters react the way you expect them to, and it’s much easier to create extreme shapes like slender trees and conifers.
Best of all, this change has proven several of my earlier theories wrong and greatly simplifies things. The Favor Bright (previously Favor Healthy) parameter is now much simpler, whereas before it was a complex mixture of two different effects. And the Inefficiency parameter is now completely gone! I never was happy with this one, but we just couldn’t get the desired conifers without it. Well now we can!
Finally parameters like Favor End and Favor Bright react just the way you think they would. I’ve tried to summarize their effect in just two paragraphs:
Imagine a tree’s twigs as thousands of individual plants. The bright grow big, the dark they die – this is Favor Bright at its fullest. Now connect the plants with branches – give them a way to share their gains. When sugar flows freely and light is plenty, even shaded plants will get the support they need to grow on in the search for new light.
Favor End gives branch ends a head start over new side branches. It creates shorter, less powerful side twigs to start with, but a head start is not always a guaranteed win. Favor Bright takes over and will slowly turn the odds in favor of the best performers – to allow short side twigs to catch up or even take over as the new lead branch. Favor Bright and Favor End are two of the most important characteristics of a tree. They work together to create a wide spectrum of shapes and characters.
That’s the gist of it, but I’m working on a new article on how trees grow, to sum up all the theories behind The Grove. Coming soon!
Something that’s been on my mind for some time is how bending branch ends was very hard to incorporate in presets. Through the years this bending’s influence was extreme, and only tiny bits of it could be used. Though when looking at real trees, this effect can be seen much stronger.
Bake Bend is now called Solidify to avoid confusion with the way the term baking is used in computer graphics. But its not just the name that has improved – there are now two separate solidify parameters – one for branch weight and one for the weight at branch ends. The theory behind this is that the solidifying of branches does not necessarily happen when the branch carries the most weight. Some trees carry big flowers in spring, others carry fruit in summer.
Replacing the previous calculations, solidify now uses the same high quality formulas used for regular bending. This increases the quality of solidify a lot and the improvements can be seen in all tree shapes. Most prominently in the weeping willow, and with it every weeping tree, which were a notoriously hard nut to crack. With these improvements they became a breeze. Try growing the new weeping willow preset to see for yourself.
There’s this small maple species growing in my brother’s garden, it’s a paperbark maple. Its small size makes it easy to study, and what a peculiar tree it is. Apart from its red flaky bark, its unusual leaf shape and its whorls of side branches, it also has crazy big branching angles. Side branches are almost perpendicular to their lead branch. But when looking at the trunk, it splits up several times to form a number of equally powerful main branches – and the strange thing is that these splits occur at a much smaller angle.
A split like this is commonly known as a fork, and it adds a lot of interest to the tree by creating a bifurcating structure, rather than a single main trunk. The reason why these forks are forming and why they split at a much lower angle was a mystery to me. But this small tree had two clues that made me form a theory:
- It only seems to happen on powerful main branches, not on side growth.
- These powerful branches seemed to develop a large number of buds at the ends.
Clue number 1 rendered my previous theory unlikely – that forking was caused by random damage of the end bud. It happens so much to some tree species that it is a big part of their growth habit. Surely this isn’t accidental damage. Clue number 2 strengthens this argument in that it mostly happens on vigorous branches with healthy buds.
The theory now is this: The side buds are so near the end bud that the auxin hormone has no grasp on them. And with enough power to grow them all, they basically become equal to the end bud. So a couple of side bud could easily take over the end bud, or maybe only nudge the end bud to the side, who knows. Let’s say there’s 2 or 3 new shoots growing out next year. Now these shoots will have equal power and no one of them grows on the side of the others. Without a lead shoot in the middle that pushes the side buds to the sides, the angle is much smaller.
This doesn’t just happen on trees with opposite branching like this maple. European oak trees have the same habit of forming many “side” buds near the end. And they too often form forks with several main branches instead of a single clear main trunk.
Turn to Light
It turns out that I underestimated phototropism big-time! The effect is much stronger than I previously thought. But first let’s revisit what phototropism is. Plants have the tendency to grow toward light. It can be annoying to have to constantly turn the plants in your window sill, but plants just need the light. They can’t exactly walk, but they figured out another clever way to move. They do this by growing more on the shaded side, which causes the shoot to bend toward light. To complicate things, trees also turn upward by growing away from gravity. Most of the time the two forces are both pointing up – there’s simply more light up high.
Here’s an example of a building blocking light coming from the left. The more shade, the stronger the tree turns toward the bright side. Notice how it turns back vertical when reaching the height of the building, that’s where gravitropism takes over.
The trick to get this right is how strong each force should be. Recent research shows that both can be equally strong. So in this release I’ve boosted the strength of phototropism tenfold.
The beauty is that the strength of turn to light is only boosted when the light becomes more concentrated in one direction. And when light comes from all sides equally there’s nothing to turn to.
Turn to light was improved to also work correctly on new side branches. The subtle effect that showed up was something that I was after for some time but didn’t yet realize that it was caused by phototropism – new side branches now bend and follow their parent branch for a while (only with strong phototropism).
Sapwood / Heartwood
Older branches now develop heartwood, a dead core of wood that does not transport water any longer. But the whole point for secondary growth in width is to be able to provide the entire tree crown with water. So now I’m making up for this lost heartwood by adding thicker rings of sapwood around it. The sapwood parameter indicates the layer of living wood. Everything inside is dead, and its area is compensated for in the outer rings.
The results are wider trunks and main branches that add to the character of the tree. Trees look rooted, trees look older and they carry a story. All while keeping the regular buildup of thickness the same. Nothing changes for younger trees, things only change when a branch gets thick enough to develop heartwood. The smaller the layer of heartwood, the bigger the increase in thickness and the earlier the effect kicks in.
Although this is a good start, I sense that there is more to the story. Trees won’t be able to compensate for dead inner wood just like that. They can’t just grow crazy wide rings for free. One of the things I want to investigate for a coming release is the weakening and eventual death of older trees. More on that at a later time.
Some conifer trees drop their lower branches as they grow older. The process that caused this shedding of old branches was a mystery to me and apparently also to everyone else. There is almost no research to be found on this, so I have come up with several theories of my own that I’ve tested in earlier releases. But forget about these earlier theories, because although they seemed to work in some cases, they had side effects and that told me that they just couldn’t be correct.
And then it struck me, while studying the formation of wood. The new theory is based on the formation of heartwood in the core of older branches. Young branches consist almost entirely of sapwood, with the important function of flowing water up to the leaves. Then the tree starts adding new rings around the old core, and year upon year the inner rings grow old and eventually die. This dead wood on the inside of thicker branches is called heartwood, and this wood stops flowing water, it’s dead. Some trees form heartwood faster than others, and some have almost none. Conifers do form a lot of heartwood and the layer of sapwood is especially thin.
Now a young tree adds its side branches when the trunk is still thin and fresh. But then the trunk keeps adding new rings and keeps growing thicker. The side branch will also grow thicker, but at a much slower rate, again especially in conifers. So far all is fine and the sapwood of the trunk will pass along water to the thinner side branch. But sapwood has a limited shelf life, and several years on the core of the trunk starts to “die”, forming heartwood. This dead tissue does not transport water anymore, and this is a serious problem for the side branch that has its water tubes nested in this inner tissue. If the side branch was very successful and would have built up a lot of new thickness, there’s no problem, but otherwise it’s done.
This theory, when put to the practice, gives very convincing results in conifers. I hope to further explore this and make improvements in coming releases.
Spiced-up bark materials
Autumn trees like oaks have dry bases, but the thinner branches in the crown are shaded and out of the wind; they stay wet and as an effect they are much darker! But even in summer, most trees have different shades of bark depending on bark age / branch thickness. This release conveniently sets up the material nodes needed for the darkening of thinner branches, ready for you to tweak. It uses the thickness layer – a good example for how to use the different vertex layers that are available in The Grove. You could also use the shade or power layers to influence bark shades.
This is more of a fix than a feature. The Grove now reuses your bark material instead of creating a new one every time. You can now safely tweak the bark material and come in and grow some extra years, the material will stick to your tree.
The Grove now automatically sets up your bark material to include normal maps, so you don’t have to. It looks for files with common suffixes like _normal, _n and _N. Earlier this year I quietly added normal maps to the bark textures that come with The Grove. They are synthesized with the great free software Materialize.
Quick texture swap
Pick a bark texture and it now instantly applies to your trees – without the need to rebuild the model. UV’s instantly rescale to match the new texture’s aspect ratio. Likewise, UV Repeat now also works like this. The speed and flexibility makes experimenting much more fun.
The Grove grows trees in small steps, so that you can watch your tree take shape and understand what happens through the years. The small steps also give you a chance to interact with your tree by pruning it every now and then.
But when you’re tweaking parameters to create a new tree shape, it’s better to skip these steps and quickly regrow the tree up to the same age. Regrow does exactly this – so you can now see the effect of your tweaks without intermediate builds. A simple button, but surprisingly effective.
Prune Low moved to its own dedicated Auto Prune panel. It didn’t belong in the Drop panel, everything else in there is a decision of the tree itself to drop a branch, while Prune Low is an automated (human / animal) pruning that is imposed upon the tree. Auto Prune also has a lot of impact and should be immediately visible. I plan to add more automatic pruning options to this panel.
I added a new rule to also keep side branches that have already grown higher than the lead branch. This solves some kinky trunks that appeared now and then, and it also helps in keeping lower forks on the tree.
And to polish it all, I fixed two issues with automatic pruning. Clipping of branches growing down under the border did not yet store dead thickness! Branch ends were simply reset and you would never see a cut thick end at the border. Fixed! And finally, Prune Low was removing side branches from within a loop, which is not a smart thing to do. It sometimes resulted in undefined buildup of thickness.
Natural twig distribution
Sometimes a small change can make a big difference, like this improved distribution of twigs. Side twigs are distributed alongside young growth near the end of every branch. Now that I’m using the actual age of each node instead of just how thin it is, twigs will now cluster more naturally near branch ends. Thickness was not an exact measurement of age, but I didn’t expect the difference to be so big! It’s also easier to tweak this way.
Temporarily hide twigs to better see the tree structure and work on your tree shape. Toggle the eye icon next to the twig picker to hide twigs.
Escape Shade is Back
I found out that in release 7, somehow Shade Avoidance vanished from the code, it was just gone. It was still there in the interface, but it had no effect at all. Oops! Now it’s back! And it’s got a new name: Escape Shade. This captures the effect perfectly – it’s not avoiding shade in advance, it’s escaping it when it finds itself in shade. A subtle but fundamental difference.
Just a little reminder of what escaping shade is about: it is added to Favor End. When positive, then shaded branches will have a higher Favor End and side branches will be less powerful. When negative, then shaded branches will develop side branches much more powerful, like beech trees do when growing on the forest floor.
The shade preview was a handy little feature, but there was too little time to port it to release 7. Now it’s back, with the same upgrade in interactivity that the other tools got in release 7. Toggle the eye icon to quickly build or remove the preview. The preview shows the leaf areas used to calculate shade, as well as the distribution of samples used for ray-tracing. Even better, you can now interactively tweak Leaf Area and Samples and directly see the result updating in the 3D view.
There is a troubling trend where Blender is getting darker and darker with every new release – there’s no telling where this will stop ;) The Grove’s icons didn’t work well on a dark background and they were too intricate to start with. The new icons are as cave drawings and have been designed with contrast in mind, while still keeping the hand-drawn look. Their bold lines are directly clear when seen at a glance. A black and white icon set work great on your preference of either a dark or a bright theme.
Simplifications all over the place. Most users are artists and not botanists, and even if you are, fancy names don’t make things better. Some peculiarities are nice, but not when they get in the way of usability. This release gets rid of some of the idiosyncrasies that may have led to confusion.
- Apical and lateral twigs are now called end and side twigs.
- To Gravity becomes simply Up – which inverts the effect. The scientific term for trees growing up is gravitropism, which is the effect of a branch growing toward gravity. Clearly most trees grow away from gravity, so this parameter is mostly a negative number. It’s just plain weird to enter negative numbers in a field like this. Up makes more sense.
- Shade Elongation is now Longer in Shade.
- Show Dead is replaced by an eye toggle next to Stick Around. Enable it to visualize dead branches in a red color. Toggling it will rebuild the tree model to include the red material.
- Scale to Match Twig was a crazy long name for in the interface, and it was really hard to translate to other languages, if it was even clear in English to start with. Anyway, it’s now simply called Scale.
- Favor Lead is now Favor End. It is not the lead branch that gets favored over the side branch, it is the end bud being favored over the side buds. A small difference but fundamental to really understand what’s going on.
These are the most important. You get the point, there are many more changes, but it’s not necessary to list all of them here, you’ll enjoy them when using The Grove.
Remove, rename or add new presets in a much easier, more standard way. The presets panel is much cleaner now – little plus and minus buttons expand the panel with options to save or delete a preset. New is the option to cancel, and a dialog to confirm overwriting an existing preset.
The usage of the prune tool was unclear for many users – nothing apparent seemed to happen after clicking the button. Clicking Prune (and also Animate, Grow and Regrow) will now keep the button active (blue colored) to show that the tool is active.
And when it is active, prune now also displays tips on how to use it, just below the prune button. The status bar shows all shortcuts and it indicates if the Shape option is active. Here you will find that Shape is now an option for prune that can be toggled on or off with TAB. And finally, the lines you draw are now thicker and drawn with a dark outline for better visibility. Prune draws white lines, shape draws green lines; a visual indicator for which mode you’re in.
Blender 2.8’s new viewport draws outlines around objects. Although outlines are beautiful and helpful most of the time, they are really bad for evaluating trees. Outlines make branches look much thicker than they really are. It’s so bad that I added a warning that screams: Disable Outline – simply click it to disable outline shading.
Another default of Blender that makes trees hard to see is the background color. The dark grey color makes a tree hard to discern. The controls for changing the background are hard to find, especially for casual Blender users. A new button at the top of The Grove’s interface – Bright Background – will set the background to middle grey.
- Improved wind animation quality by using the correct area facing the wind direction and also by using multiple in between passes where this area may change due to successive bending.
- Buds only have a couple of years to live (Bud Life) and if they don’t open before that, they’re gone. To properly determine the age, I’m now storing and incrementing the age of each node.
- Improved gravitropism when adding new side branches, by using spherical interpolation.
- Skip saving the grove in the build operator – it just builds and doesn’t change anything worth saving. This will make everything a bit faster!
- A quick tweak of Scale – when growing multiple trees at the same time – now also scales the positions of the trees, like a full rebuild would do.
- Fix kinky glitches with extreme bending by limiting the angle if bending past the gravity vector.
- Fixed the smoothing that is applied when a thicker lateral branch takes over as the main branch. When taking over, the smoothing moves the node half a node back for a pleasing curve. But this would take the entire branch with it, and everything attached. This became visible thanks to the smooth growth animation that is now possible with recording.
- For consistency, the UV map of the tree mesh now uses the Blender default name UVMap instead of the previous UV. When manually joining twig duplicates with the tree mesh, the two maps didn’t merge into one and caused materials to fail.
- Updated many tooltips to even better capture the effect and of course to reflect the many changes introduced in this release.
- Twig viewport detail shouldn’t do its work when twigs are low poly – it now skips twigs with up to 200 polygons.
- Rename of Pick Preset to Presets and Pick Twig to Twigs. While working with The Grove, I often confused the two, this change should make the two more discernible at a glance.
- Compress disk cache. Storing every tree’s data for later use can take a lot of disk space. Using gzip compression takes just 40% of the original space. The Grove keeps reading your uncompressed groves from the previous version.
- Full width twigs and presets picker, by losing the ‘Twigs’ and ‘Presets’ text in front. It will now fit longer names.
- Only scan twigs folder on start-up or when changing the twigs folder. It was done every time the UI would redraw, which was a waste of time! Same for textures folder.
- Scene units are now default in Blender, so The Grove won’t set them anymore. If you manually disabled them, that must have been a conscious choice that The Grove should respect. However another new default in Blender is to use non-adaptive units, which I don’t understand. So I now do set length units to adaptive. Nobody wants 2mm to show as 0.002m. Even with adaptive units, you can still enter 0.002 without the m to get 2mm.
- Icons are now correctly freed, allowing a reload of scripts without warnings.
- Instead of the import icon, items in the twig picker menu now use the append icon. This makes it clear what picking a twig really does – append the twig to the current scene.
- Several smaller corner cases have been fixed to make The Grove rock solid, thanks to you for reporting them!
- Blender now automatically saves any changes you make to The Grove’s preferences, like when adding your textures and twigs folders. So the big button “Save User Preferences” is now gone.
- The highest point of your grove now looks at all trees instead of only the first.
- End twigs are now perfectly aligned to their parent branch, by fixing a small math error.
- With high polygon reduction, the step down in profile resolution from 4 to 3 causes too much rotation for Blender to correctly tessellate the quads into triangles, with ugly results. To fix this, I slightly twist the node with three points.
- The Animate panel is now called Wind, to avoid confusion with the new growth animation. The naming of parameters inside the Wind panel have all been improved.
- When language is on automatic, reloading scripts doesn’t work, throws an error and disables The Grove! Fixed!
- The progress bar now includes the build step and the interface is drawn a couple of times for it to show up more smoothly. Small but nice touches that add to the experience of using The Grove.
Still to do…
This is such a big release that it was extremely hard to wrap up. But I just couldn’t wait to share it with you. The only thing missing in this release is updated translations. These will be released in an 8A release along with fixes to possible bugs. And if you find any bugs, please send me a mail – let’s make this release as rock solid as always!
Also, a new olive twig
Get the new twigs to add to your library. Pick up 3 twigs to receive a 10% Bundle Discount. Bundle up to 6 twigs or more for an awesome 20% Nesting Bird Discount! These twig models attach fluently to the trees you grow, and add incredible detail and realism. More twigs are on their way…