StochasticPlant

StochasticPlant

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
fun randomize (number, maxDistance) {
return number + random(0, maxDistance) -random(0, maxDistance);
}
 
lsystem StochasticPlant {
let angle = 30;
let angleRandomness = 20;
let length = 10;
let lengthRandomness = 10;
 
set iterations = 7;
set initialAngle = 90;
set symbols axiom = F;
set tropismVector = {0, -1, 0};
set tropismCoefficient = 0.05;
 
rewrite F
to F[+F]F[-F]F weight 0.33
to F[+F]F weight 0.33
to F[-F]F weight 0.34;
interpret F as DrawForward(randomize(length, lengthRandomness));
interpret + as TurnLeft(randomize(angle, angleRandomness));
interpret - as TurnLeft(-randomize(angle, angleRandomness));
interpret [ as StartBranch();
interpret ] as EndBranch();
}
 
process StochasticPlant with SvgRenderer;

Thumbnail extension

1
2
process StochasticPlant with SvgRenderer
set iterations = 4;