NCCA - Personal Research by SELCUK ERGEN

 

A Tool for L-Systems;

SideFX
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

 

clean

Figure_6

 

rules

Figure_7

 

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

 

angle

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

 

generation

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

www.sidefx.com

 

 

 

 

 

 

 

______________________________________

 

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

 

 

axe

 

 

______________________________________

 

2_Commands (Intermediate) :

 

J

K

M

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