F –> F+F[-F+F-[F+]F]-[-F[—F]-F] generates this relatively convincing tree. Every time.
genetic code entirely determines the virtual plant’s structure as it grows. This is an effective model if your goal is to produce a line drawing that resembles a plant or a tree. This model also has value in describing the fractal nature of plant branching patterns. However–like all models–it has its limitations. Unlike real plants, the L-system has no context. Two genetically identical trees, planted in different environments, will grow to be very different. Can we give our L-system the same responsiveness?
Here is F –> F+F[-F+F-[F+]F]-[-F[—F]-F] again. Looks pretty different, right? Here we see him reacting to his environment, but he no longer looks like a tree. This model is not deterministic; rather, the system evaluates the amount of “resources” along its branches (black = abundance of resource; white = scarcity) and grows (or expands itself, if you are familiar with how L-systems propagate) where it seems most profitable. What does this tell us?
My initial answer was “not much.” I don’t think we learn much about tropisms, or at least I think we could explore tropisms more directly and fruitfully by abandoning L-systems. It does tell us that a single tropism, divorced from the multitude of morphological motivations to which a real tree is subject, is a disastrous genetic disorder.
It also raises questions about the value of models, and about the practical uses of L-systems. It does not appear that L-systems are a useful model for modeling responsive systems. The value of L-systems is in their ability to model the internal logic of branching systems. Perhaps another method, another type of system, is needed in order to explore branching behavior, to explore the logic of external forces on branching systems. To be explored….
There are a number of different ways in which one can produce a model of a tree, and we have explored many of these as a group. One particularly interesting class of “tree model” is the mathematical model. Within this class, there exists a substantial variety of approaches, but the idea, in general, is to replicate tree morphology with an algorithm. I chose to begin my exploration of mathematical trees via L-Systems (named after biologist Aristid Lindenmayer who first proposed them).
L-Systems are a type of recursive string-rewriting system that are capable of, among other things, drawing 2- and 3-D branching patterns. You can read all about them here. Even while remaining totally deterministic, i.e. without introducing probability or randomness, they are capable of producing some pretty convincing plants:
More to come.
There is quite a bit of action going on here. If this were not a site about trees, you might not know exactly what you were seeing. (It is a progressive horizontal section through one of our laser-scanned trees, C-1). What I see is some amoebic form adopting a strategy of divide and conquer as it advances into the surrounding territory and recursively expands its operations.
Understanding that this is, in fact, a tree, what I see is an impressively complex, yet organized growth pattern. I see decisions made, resources sought and committed, and movement.
I think it is somewhat amazing that we can go measure a tree, right now, in its relatively static, present state, and then produce an empirical representation of that tree which is at once totally accurate and yet is also capable of telling an allegory of that tree’s personal history of growth, battle, and general agency. We know this history occurred, but cannot measure it in the short term. Good thing it is baked into the branches. We don’t often think of it, but the story of the tree is almost impossible to ignore when we see an image like the one above. Perhaps it takes a gif or an animation, pushing the tree into a more (human-)comfortable temporal space, to draw out for us the agency so clearly mapped onto the topological structure of the tree. Just look at that thing! It is attacking the sunlight!