This is how Starboretum looks now. The prototype with the growing trees has been shelved for now.
No title available
No title available
Not today Justin
hello vonnie

shark vs the universe

@theartofmadeline
Show & Tell
Misplaced Lens Cap

JVL

if i look back, i am lost
AnasAbdin
trying on a metaphor
will byers stan first human second

❣ Chile in a Photography ❣
art blog(derogatory)
tumblr dot com
YOU ARE THE REASON
Sade Olutola

JBB: An Artblog!

Kaledo Art

seen from United States

seen from Malaysia
seen from Tunisia
seen from United States

seen from Argentina

seen from United States
seen from United States
seen from United States

seen from Malaysia

seen from United States
seen from United States
seen from United States
seen from Mexico

seen from United States
seen from Argentina

seen from Türkiye
seen from Australia
seen from United States
seen from United States

seen from United Kingdom
@starboretum
This is how Starboretum looks now. The prototype with the growing trees has been shelved for now.
Hi Tim! I got your contact information from Joel McDonald. I'm interested in your game, specifically what type of technology you used in development. If you don't mind me asking, did you use The Grove 3D to generate your trees, or did you write your own code for them? Also, I'm wondering if Starbortem has a Germination system. My final question, and most important one, is how are you doing with rendering trees with growth animations on a mass scale? Did you encounter any problems? Thank you!
Hey! FYI it’s Alex not Tim :)
I don’t use The Grove to do these trees, though that software is really cool looking. The trees in starbo are generated on the fly from noise fields, so they have to be done super fast. The speed at which you walk in the game is slow enough that it is possible to generate all the trees you see before you get close enough to them (i.e. beyond the fog). IIRC they take about 20-30ms to generate. I haven’t checked recently.
The trees are created with a factory class that implements the “space colonization” algorithm to build out a network of nodes that are then meshed up by a second factory class. There are several of each running on threads in the game.
There’s no germination system and the trees don’t “grow”. Their appearance is generated from positional noise fields, so a tree generated at a certain location will always look the same.
I used to show the trees “growing” out from the ground, but it looked stupid because many of the trees had no branches low down and so you’d see a single stalk growing up before branching out, which is not how trees really grow. It also became antithetical to the game’s moral viewpoint - having the player’s movement, the player themselves, be the thing that breathes life into the world started to feel unpleasantly egoistic to me.
With that said, the way I was doing it was to generate the mesh data with embedded values for when a node should start to grow along with its position at the centre of the branch, so that the vertex shader could interpolate between that and the vertex’s final position inside a time window. By staggering these windows from the bottom of the tree up, the tree would appear to grow out of the floor. But it’s just a fancy fade, really. An easier way to do it would be to cutout alpha fade based on a hidden vertex colour.
The real problem to solve is how to animate the trees once they are present. This is a huge problem. Most games solve this by having positional noise on leaf vertices so they appear to shake, but this doesn’t capture the movement of a tree’s branches that winds and even slight breezes cause. That would require a skeletal animation system, which would be quite a strain for so many unique trees. Nevertheless, there is code in Starboretum to generate a procedural skeleton for Unity’s animation system for any given tree, which could then be animated with noise, or if code were added, with some kind of hierarchical spring system. It was working pretty well but I discontinued it during the last great technological leap in the game, where many things because refactored and skeletons had to go to keep things understandable during the process. I have since not had time to resurrect the code for this, but walking through the forest these days it does feel like a necessity, a little movement at least is needed.
Hey do you have a prototype of your tree gen for sale for Unity?
Hello, currently not as it's very old and messy code that isn't very portable right now. Sorry!
Many years ago I read about simulated tree evolution using procedural trees in Scientific American. I think they called them L-systems. Are you using that? Or is this your own thing? Wonderful work by the way.
Hi! Tumblr doesn't tell me when a question was posted so I've no idea how old this is. Thank you for the compliment.
The trees in starbo don't use L-systems. I tried them ages ago and found them slow and difficult to configure. The principal algorithm used for starboretum's trees is called Space Colonization.
Hey Alex, we came across your work and are really impressed from it. As we are working on a project called Lucid Trips, which takes place in multiplanetary dreamworlds your magical procedural trees catched us! If you like our idea we would love to cooperate with you somehow. Wanna get in touch?
Hey folks, sorry i never replied to this and hope you're all doing well wherever you are and whatever you're doing ♥️
Shots from prototype in 2015