The definitions demonstrate how to create 3D Branching Structures using Rabbit. How to control parameters: angle, thickness, length.
More about Branching Structures: http://algorithmicbotany.org/papers/abop/abop-ch1.pdf
The meanings of the symbols:
F move forward at distance L(Step Length) and draw a line
f move forward at distance L(Step Length) without drawing a line
+ turn left A(Default Angle) degrees
– turn right A(Default Angle) degrees
\ roll left A(Default Angle) degrees
/ roll right A(Default Angle) degrees
^ pitch up A(Default Angle) degrees
& pitch down A(Default Angle) degrees
| turn around 180 degrees
J insert point at this position
“ multiply current length by dL(Length Scale)
! multiply current thickness by dT(Thickness Scale)
[ start a branch(push turtle state)
] end a branch(pop turtle state)
A/B/C/D.. placeholders, used to nest other symbols
Get 3D Branching Structures #1 Get 3D Branching Structures #2
27 thoughts on “L-Systems: Creating 3D Branching Structures”
what is denoted by these symbols:
We’ve updated the information above to answer your question.
thanks a lot!!!!
Hi morphocode, i just trying to make 3d branching with your tutorial, which can growth in the direction of sunpath. but i’m confused to locate orientation input parameter in turtle. Are growth process step can manage by timed? Can you explain me?
Here the attachment file : http://www.grasshopper3d.com/forum/topics/rabbit-orientation-growth
You can’t control the growth of the L-System using a vector. The turtle is unaware of external vectors during the interpretation of the L-System symbols. You can specify initial position and orientation but after that the Turtle will move according to the growth rules. If you want to make the L-system grow in some direction, you need to experiment with the production rules and the angle increment.
probably Galapagos can be helpful in this case…
thanks for a great release. what’s is the string for multiply current angle by dA? thanks.
the symbol is ; but it’s not implemented in this version of Rabbit.
If you want to vary with the angle, you can use a smaller angle.. say ’15’ and then use a single or multiple rotation commands depending on whether you need to turn 15,30,45,… degrees.
Hi there. Thanks for creating this and for updating it! I’ve been trying to use the tube settings in Rabbit to create scaled tubes along a 2d branching structure. However, I’ve been having trouble making the profile curve rotate to the “edge line” at the start point of the “edge line” rather than at its end point. Because of this, the loft is uneven. Is there a way within the turtle to alter this? I’m happy to post images if necessary. Thanks so much!!
In this tutorial, Axiom and production code is exactly the same for each example, still the outputs are different. Could you please explain me what am I missing here? Moreover, it might be slightly dumb question, what are the parameters to generate any production rule?
The axiom and production rules are different for the different samples. Just have a closer look.
This paper is really useful and should help you understanding the basic concepts: http://algorithmicbotany.org/papers/abop/abop-ch1.pdf
@dasha please, provide an image describing the problem so that we can help you out
I’m working with Rabbit L-Systems to create a branching structure. I want to vary the thickness of the limbs as the structure grows, such that it is thickest at the base (just like the pink coloured structure on Morphocde’s Rabbit’s download page)
When i use simple series + scale, i do not get the desired output (see attached). I have tried grafting and flattening the output before applying scaling.
However, it seems to be more complex than that. If I’m not mistaken, this may be achieved by taming the data structure. I’m not a pro at it. Can some-1 help me please?
Have you tried: http://morphocode.com/download/MORPHOCODE-rabbit-lsystem-branching-structures-3d-tubes.gh ?
Thank you so much. That helped a lot.
One more query, I’m sure it is easier said than done. Is it possible to limit the branching to only one at a time ie. avoiding a split into three branches from a single point?
Probably you can use multiple placeholders: A, B, C and define different production rules for each of them so that only A and B produce splitting of the branches, while C defines other behavior(ie. does not split the branch).
In this scenario a timed parametric L-System would be helpful, but Rabbit 0.3 does not support this type of systems yet.
I’m trying to download the 3D branching structures 1 and 2. The main pages are hieroglyphics and codes, and they are not working. Whats going on?
I’m trying to use this to model mangrove roots, can you offer any help with this?
Are stochastic grammars supported in this? Or possible through some sort of work around?
no, at this time Rabbit does not support stochastic l-systems.
there seems to be a symbol missing for “roll left A(Default Angle) degrees”
yep, we’ve missed it.
Please, try the backslash – \
I’m currently using your Rabbit program on grasshopper for building a tree and I would need your help concerning two problems I’ve encountered.
The main parameters of the tree are:
rule 1: F=F[!”+//F] F[!”-//F]
angle increment “A” for the turtle = 37.5
1) I’m trying to build a dichotomous tree (2 branches per generation) that has an angle of 37.5° between two branches but an angle between two generation of 90°. Basically, I couldn’t set 2 different angles for the turtle.
I’ve tried to disconnect the “Angle increment” from the turtle and wright “rule1″ as F=F[!”+(37.5)/(90)F] [!”-(37.5)/(90)F] but it doesn’t work… Any ideas?
2) I’ve been trying to build the tree with “n”= 23 (number of generations or rewriting) but it seems that the program fails to do so. I’m using a quite powerful computer with a lot of memory so I don’t understand. How could I overcome this problem?
can the ca run in 3d?
What is the symbol for angle scale (dA)? I would like to reduce my angle with each generation.
Please, have a look at the comment above: https://morphocode.com/3d-branching-structures-with-rabbit/#comment-16418
Is it possible to use Rabbit to model a drooping tree like a Weeping Willow using the 3d Branches GH file? So far I have been unable to simulate the organic/catenary nature of a Willow tree’s branch structure.
It should be possible to simulate something like a Weeping Willow. Probably, you will have to increase the number of iterations and play with the angle. Here you can see some 2d examples and use them as a starting point: https://morphocode.com/2d-branching-structures-with-rabbit/. Maybe you can build a model in 2D and then translate it into 3D.