aboutsummaryrefslogtreecommitdiff
path: root/Gem/examples/02.advanced/21.basic_LSystem.pd
blob: 5b23388cc52a549d52601f047aa5cc0373eab075 (plain)
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
#N canvas 515 61 647 743 10;
#X declare -lib Gem;
#X obj 15 16 gemhead;
#X obj 76 483 GEMglPushMatrix;
#X obj 96 462 GEMglPopMatrix;
#X floatatom 353 502 5 0 0 0 - - -;
#X obj 15 63 rotateXYZ 0 0 90;
#X floatatom 201 508 5 0 0 0 - - -;
#X floatatom 201 486 5 0 0 0 - - -;
#X obj 262 35 gemhead;
#X obj 262 61 world_light;
#X obj 15 607 translateXYZ 0.05 0 0;
#X obj 15 140 route F;
#X text 271 163 <- rule 1;
#X obj 15 187 route F;
#X msg 15 211 F \, [ \, - \, F \, F \, ] \, F \, [ \, + \, F \, ] \,
F;
#X obj 15 235 route F;
#X text 272 209 <- rule 2;
#X text 271 257 <- rule 3;
#X msg 15 110 F;
#X obj 15 85 t b a;
#X obj 15 558 translateXYZ 0.05 0 0;
#X obj 15 583 rectangle 0.1 0.01;
#X obj 15 41 translateXYZ 0 -3 0;
#X obj 35 530 rotateXYZ 0 0 50;
#X obj 54 506 rotateXYZ 0 0 -40;
#X obj 353 521 / 100;
#X msg 353 479 10;
#X obj 353 456 loadbang;
#X text 243 485 <- try this;
#X text 125 310 <- create the primitive according to the Lsystem;
#X text 270 276 These rules create an Lsystem;
#X text 152 381 <- Store the current state sent by [gemhead] and distribute
it to the corresponding primitives;
#X text 397 502 <- size of the system;
#X msg 15 164 F \, [ \, - \, F \, ] \, F \, [ \, + \, F \, ] \, F;
#X text 12 640 This is a basic implementation of Lindenmayer System
(LSystem) in GEM. Wikipedia is a good place for information about Lsystems
;
#X obj 15 351 gemlist;
#X obj 47 110 s \$0-gemlist;
#X obj 35 372 gemlist;
#X obj 54 395 gemlist;
#X obj 76 417 gemlist;
#X obj 96 438 gemlist;
#X obj 142 330 r \$0-gemlist;
#X obj 15 309 route F + - [ ];
#X msg 15 259 F \, [ \, - \, F \, F \, ] \, F \, [ \, + \, F \, ] \,
F;
#N canvas 340 107 682 322 gemwin 0;
#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144
-1 -1 0 1;
#X obj 102 161 r \$0-gemstart;
#X obj 102 182 select 1 0;
#X msg 102 214 create \, 1;
#X msg 177 215 destroy;
#X obj 102 239 t a;
#X obj 318 54 inlet;
#X obj 318 255 gemwin;
#X obj 318 100 t a a;
#X obj 318 287 outlet;
#X obj 350 128 route create destroy;
#X obj 350 150 t b;
#X msg 350 172 1;
#X obj 390 150 t b;
#X msg 390 172 0;
#X obj 350 195 t f;
#X msg 350 219 set \$1;
#X text 118 122 rendering;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 2 1 4 0;
#X connect 3 0 5 0;
#X connect 4 0 5 0;
#X connect 5 0 8 0;
#X connect 6 0 8 0;
#X connect 7 0 9 0;
#X connect 8 0 7 0;
#X connect 8 1 10 0;
#X connect 10 0 11 0;
#X connect 10 1 13 0;
#X connect 11 0 12 0;
#X connect 12 0 15 0;
#X connect 13 0 14 0;
#X connect 14 0 15 0;
#X connect 15 0 16 0;
#X connect 16 0 0 0;
#X coords 0 -1 1 1 85 40 1 100 100;
#X restore 377 62 pd gemwin;
#N canvas 0 0 450 300 Gem.init 0;
#X obj 67 72 loadbang;
#X msg 67 93 lighting 1;
#X obj 67 114 outlet;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X restore 377 40 pd Gem.init;
#X obj 528 8 declare -lib Gem;
#X connect 0 0 21 0;
#X connect 3 0 24 0;
#X connect 4 0 18 0;
#X connect 5 0 22 3;
#X connect 6 0 23 3;
#X connect 7 0 8 0;
#X connect 10 0 32 0;
#X connect 10 1 12 0;
#X connect 12 0 13 0;
#X connect 12 1 14 0;
#X connect 13 0 14 0;
#X connect 14 0 42 0;
#X connect 14 1 41 0;
#X connect 17 0 10 0;
#X connect 18 0 17 0;
#X connect 18 1 35 0;
#X connect 19 0 20 0;
#X connect 20 0 9 0;
#X connect 21 0 4 0;
#X connect 24 0 9 1;
#X connect 24 0 19 1;
#X connect 24 0 20 1;
#X connect 25 0 3 0;
#X connect 26 0 25 0;
#X connect 32 0 12 0;
#X connect 34 0 19 0;
#X connect 36 0 22 0;
#X connect 37 0 23 0;
#X connect 38 0 1 0;
#X connect 39 0 2 0;
#X connect 40 0 34 1;
#X connect 40 0 36 1;
#X connect 40 0 37 1;
#X connect 40 0 38 1;
#X connect 40 0 39 1;
#X connect 41 0 34 0;
#X connect 41 1 36 0;
#X connect 41 2 37 0;
#X connect 41 3 38 0;
#X connect 41 4 39 0;
#X connect 42 0 41 0;
#X connect 44 0 43 0;