NCCA - Personal Research by SELCUK ERGEN


A Tool for L-Systems;

Houdini v8.1


Side FX's 3D Animation Package Houdini is one of the most powerful tools in terms of implementing the rules of L-Systems. In this section I am going to give some examples by using Houdini to visualise the graphical interpretation of the System. So that it will be easier to understand the logic of L-Systems.


I broke the "Houdini Turtle Operator" commands down into 3 group "Beginner, Intermediate, Advanced". You can see the list on the right coloumn.


The commands for beginners are much appropriate to examine the L-System logic. So, the examples that I am going to show will generally include the 1st set of the commands.


The following examples are well known patterns of fractals which carry the names of their inventors. They will also be given for the edge rewriting type of L-Systems which has a property of replacing the initial geometry.


Koch Curve:


- First create an L-system SOP and go to the “Rules” tab. Delete the default Premise and Rules. Figure_6

- Then enter the following premise (axiom) and rules;Figure_7


Lsystem Koch Curve
Premise F
Rule 1 F=F+F—F+F
Angle 60








- Change the angle parameter to 60 degrees from “Values” tab. Figure_8





- You can now see the result in the viewer. the geometry will probably be on 7th generation as default. so to see the growing process al you need to do is change the generation to 0 on geometry tab and increase it slightly.Figure_9






Click Here to see the Animated GIF for the Koch Curve




Here are some more examples for edge rewriting. You can enter the rules and the values to see the result.



Lsystem Koch Island
Premise F+F+F+F
Rule 1 F=F+F-F-FF+F+F-F
Angle 90

Click Here to see the Animated GIF for the Koch Island




Lsystem Cantor Set
Premise F
Rule 1 F=FfF
Rule 2 f=fff
Angle -

Click Here to see the Animated GIF for the Cantor Set





Lsystem Peano Curve
Premise F
Rule 1 F= F+F+F+FF+F+F-F
Angle 90


Click Here to see the Animated GIF for the Peano Curve



A Simple Example for Branching


Lsystem Branches
Premise FX
Rule 1 X=F[+F]F[-F]X
Angle 28


Click Here to see the Animated GIF for the Branches




Modelling a cube in 1 generation by using branches


Lsystem Cube
Premise F[&A]+F[&A]+F[&A]+F[&A]
Rule 1 A=F+F
Angle 90


Click Here to see the Animated GIF for the Cube















Houdini Turtle Operators:



1 Commands (Beginner) :


F Move Forward – while drawing geometry
G  Move Forward – while drawing geometry – do not create vertex
H Move Forward Half of the Length – while drawing geometry
f Move Forward – without drawing any geometry
h Move Forward Half of the Length – without drawing any geometry
+ Turn Right
- Turn Left
& Pitch Up
^ Pitch Down
\ Roll Clockwise
/ Roll Counter-Clockwise
[ Start a Branch
] End a Branch








2_Commands (Intermediate) :





Take the geometry from leaf input J, K or M of the L-System Sop and stamp at the turtle's position after reorienting and rescaling it. The stamped geometry is scaled by the default Step Size parameter
T Apply gravity by changing the angle of the turtle towards the y axis
| Turn 180 degrees
* Roll 180 degrees
~ Turn - Pitch - Roll with a random degree
" Multiply the current length by step size scale.
! Multiply the current thickness (if the geometry type is tube) by the thickness scale
; Multiply the current angle by angle scale
_ Divide the current length by step size scale
? Divide the current width by thickness scale
@ Divide the current angle by angle scale
$ Rotate the turtle to make the Upvector (0,1,0) - Point the turtle in the direction of the point (x,y,z)



3_Commands (Advanced) :


' Increment colour index U by u - Default UV Increment's first parameter
# Increment colour index V by v - Default UV Increment's second parameter.
% Cut off remainder of branch
{ Start a Polygon
} End a Polygon
. Draw a Polygon vertex
g Create a new primitive group to which subsequent geometry is added. The group name is the Group Prefix followed by the number . The default if no parameter is given is to create a group with the current group number and then increment the current group number
a This creates a point attribute of the name attrib. It is then set to the value v1, v2, v3 for the remainder of the points on this branch, or until another a command resets it. The v2 & v3 are optional, if not present, an attribute of fewer floats will be created. The created attribute is always of float type and with zero defaults. For example, the rule a("Cd", 1, 0, 1) added to the start of the premise will make the lsystem a nice pugnacious purple.



Note : See Houdini L-System SOP Help file for detailed information



































      Introduction         LSystems?         Houdini&LSystems          ResearchResults           Industry           References