Questions about LSystem

   4523   5   0
User Avatar
Member
9 posts
Joined: May 2008
Offline
Here are the rules:
Premise: F(0.1)X
Rule1: X=F(h)FX
Rule2: F(h)=F(h+0.005)
————————————
at G0(generation 0): F(0.1)X
G1: F(0.105)F(0.1)FX
G2: F(0.11)F(0.105)F(0.005)F(0)FX
————————————
from G0 to G1 X is been replaced with F(0.1)FX, but from G1 to G2 X is been replace with F(0)FX, and after G2 X is always been replaced with F(0)FX. Why is that?? Shouldnt it always take the number 0.1 which is been defined in Premise??

/////////////////////////////////////////

And another question:
At G1, the last F's(the F before X) length is 0.1 which I think is the value of Step Size attribute. But at G2 THAT F's length is 0.005 which seems its value should be 0 at G1. Why is this weird behavior?

And another question about F(h), when I replace character h with some other character like “v”, thats no problem, the result is the same, but when I use character “x”, the result is nolonger the same, my question is: is there a certain rule for that paremeter?

/////////////////////////////////////////

Another question:
Premise: FX
Rule1: X=/(137.5)FX:0.5
Rule2: X=/(137.5)FX
————————————
What does symbol ":" mean? Is there other symbols that can be used here except those listed in Home->Operators->Surface/Geometry Operators (SOPs)->LSystem. I cant fine them in houdini documents. Or is there any??


Thanks in advance!!
User Avatar
Member
156 posts
Joined: July 2005
Offline
Question 1:

Ok, its not being weird - its that in rule 1 you didnt specify a number for F so it assumes 0. if you change rule one to X=F(h)F(0.1)X you get the expected result.

Question 2: Same as above - the last F needs be defined like all the others or it assumes 0.

Question 3: Is in the help but I'll tell you here also - It's a local variable “x, y, z Current turtle position in space.”

Question 4: Is in the help but not specifically documented the way some of the other symbols. When using the “:” at the end of a rule the lystem assumes probability. A 1.0 would be a probability of 100% while a 0.5 is 50%.

There are some good examples and explanations in the help. Good luck.
“In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.” - Douglas Adams
User Avatar
Member
9 posts
Joined: May 2008
Offline
Thanks for the answer moonlightkiss!

So the last “F” at G1 is assumed as F(0) at next generation even if its length is 0.1 at current generation.

But you didnt answer my first question. What I mean is why “X” is been replaced differently. G0 -> G1 its been replaced with F(0.1)FX, but G1 -> G2 its been replaced differently, its been replaced with F(0)FX, not F(0.1)FX anymore.

For question 3. So I accidently used a already existed local variable “x”, but does that means I can use any other characters except characters that been used as local variable?

Question 4. Thanks for the explainations. Can I use expressions and commands which return float value between 0 and 1 behind symbol “:”? And do they have the same effect as a simple float value.

And finally something about houdini docs, I looked at LSystem's example scenes, but they are all too simple, not much thing to learn from there, and those example scenes didnt answer my questions. So where can I find some better LSystem examples more practical ones.

Thanks again !!
User Avatar
Member
156 posts
Joined: July 2005
Offline
Question 1: Well it all goes back to the F in rule 1 not being defined. So if you write it out on paper what you would expect to get, assuming simple substitution, would be F(.11)F(.105)F(.1)F(.1)FX - But because you arent putting in F(h) in rule one it assumes it's F(0) (though it may not always write it) and then substitutes and gives you F(0.11)F(0.105)F(0.005)F(0)FX Sometimes it helps to just write it out on paper.

Question 3: In the Values tab there are a few premade variables (b, c, d) and of course you can create your own using the Number of Variables parameter.

Question 4: So you can try but I'm pretty sure it doesnt take expressions like the rest of the parameters in Houdini because Lsystems use their own language. It was written/discovered in 1990 and there hasnt been much update to it.

You can check out the CmiVFX Lsystem videos. They're pretty awesome and explain a lot of the math and concepts of Lsystems. You can also download free copies of Algorithmic Beauty of Plants, but the book is pretty technical and not specific to Houdini. This website rocks too - http://algorithmicbotany.org/papers/#abop [algorithmicbotany.org] Google Searching helps too.


I also wanted to point out, your rules make a straight line. Is that what you are after?
“In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.” - Douglas Adams
User Avatar
Member
9 posts
Joined: May 2008
Offline
Thanks very much mooklightkiss!

But I still dont quite get it, so I'll do it step by step here to find out where I did wrong.

Here are the rules:
Premise: F(0.1)X
Rule1: X=F(h)FX
Rule2: F(h)=F(h+0.005)
——————
//// G0 -> G1 ////
——————
//F(0.1)X will be replaced, I'll do it one by one
F(0.1) -> F(0.1 + 0.005) -> F(0.105) //rule2
X -> F(0.1)FX //rule1 and this is what it should be(I think…)
//so result will be
F(0.105)F(0.1)FX

——————
//// G1 -> G2 ////
——————
//F(0.105)F(0.1)FX will be replaced, I'll do it one by one
F(0.105) -> F(0.105 + 0.005) -> F(0.11) //rule2
F(0.1) -> F(0.1 + 0.005) -> F(0.105) //rule2
F -> F(0 + 0.005) -> F(0.005) //rule2 and a intreseting effect here, because F will be assumed as F(0)
X -> F(0)FX //rule1, and this is what I dont get, the rule 1 says X = F(h)FX and the (h) is defined in premise as 0.1, so why it give me a 0?

THANKS FOR THAT GREAT LINK!!

It is a straight line, because that will make it easier for me to learn.

Thanks again!!
User Avatar
Member
156 posts
Joined: July 2005
Offline
in the premise you have defined F(h). You have not defined F. Neither rule 1 or rule 2 defines F. You are only defining F(h) Therefore, if you substitute an F without () it assumes 0. That is the best I can figure out.
“In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.” - Douglas Adams
  • Quick Links