L-System Signal Propagation Issues

   691   1   1
User Avatar
Member
2 posts
Joined: June 2018
Offline
Hi all,
I'm working through The Algorithmic Beauty of Plants, trying to make Houdini versions of each of the examples as I go.
Currently I'm having trouble with a system which demonstrates signal propagation from a tree root to its apices. Using the edge rewriting example in Houdini's documentation [www.sidefx.com], I've come up with this system:

variable b is set to ch(“generations”)
context ignore: F+-
context includes siblings: enabled
premise: BAAA
rule 1: B<A:t<b=B
rule 2: A=F
rule 3: B=FF

the intended generational growth is as follows:
0: BAAA
1: BBAA
2: BBBA
3: BBBB
…and with generations set to 4:
4: FFFFFFFF

as every A in the tree has been replaced by B, and B is then replaced by FF once the context-sensitive rule's condition no longer applies.

however, using the ruleset defined above, Houdini's generational growth is as follows:
0:BAAA
1:BBAA
2:BBAA
… and this repeats forever after generation 1 so that the final sequence is always:
FFFFFF

the l-system seems to only apply the rule once, and refuses to apply it to any branches even if ‘context includes siblings’ is enabled.
Has anyone encountered this problem before? What is the correct syntax to propagate a symbol through a tree along every branch?
Edited by heximhotep - Oct. 10, 2019 16:11:59
User Avatar
Member
2 posts
Joined: June 2018
Offline
Here is a hip file showing the simplest base case.

Attachments:
lsystem_contextproblems_basecase.hip (83.2 KB)

  • Quick Links