This repository has been archived by the owner on Aug 6, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathboids.pd
309 lines (309 loc) · 8.31 KB
/
boids.pd
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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
#N canvas 0 24 1257 687 10;
#X declare -lib jasch_lib;
#X obj 614 20 import jasch_lib;
#X msg -89 611 dump;
#X msg 276 123 neighbors \$1;
#X floatatom 276 108 5 0 4 0 - neighbors -;
#X floatatom 276 143 5 0 0 0 - maxspeed -;
#X msg 276 158 maxspeed \$1;
#X floatatom 276 178 5 0 0 0 - minspeed -;
#X msg 276 193 minspeed \$1;
#X floatatom 276 213 5 0 0 0 - center -;
#X msg 276 228 center \$1;
#X floatatom 276 248 5 0 0 0 - attract -;
#X msg 276 263 attract \$1;
#X floatatom 276 283 5 0 0 0 - match -;
#X msg 276 298 match \$1;
#X floatatom 276 318 5 0 0 0 - avoid -;
#X msg 276 333 avoid \$1;
#X obj -115 421 r boidParam;
#X floatatom 276 353 5 0 0 0 - repel -;
#X msg 276 368 repel \$1;
#X floatatom 276 388 5 0 0 0 - edgedist -;
#X msg 276 403 edgedist \$1;
#X floatatom 276 423 5 0 0 0 - speed -;
#X msg 276 438 speed \$1;
#X floatatom 276 458 5 0 0 0 - inertia -;
#X msg 276 473 inertia \$1;
#X floatatom 276 493 5 0 0 0 - accel -;
#X msg 276 508 accel \$1;
#X floatatom 276 528 5 0 0 0 - prefdist -;
#X msg 276 543 prefdist \$1;
#X msg -89 630 reset;
#X text 367 158 maximum speed of speed range;
#X text 369 192 minimum speed of speed range;
#X text 366 227 strength of centering instinct;
#X text 368 438 overall speed;
#X text 369 509 speed of acceleration;
#X text 369 540 preferred distance from neighbors;
#X floatatom 277 566 5 0 0 0 - flyrect[0] -;
#X floatatom 316 566 5 0 0 0 - flyrect[1] -;
#X floatatom 355 566 5 0 0 0 - flyrect[2] -;
#X floatatom 394 566 5 0 0 0 - - -;
#X floatatom 276 625 5 0 0 0 - - -;
#X floatatom 316 625 5 0 0 0 - - -;
#X floatatom 276 73 5 0 0 0 - - -;
#X msg 276 88 number \$1;
#X text 367 86 number of boids;
#X floatatom -89 577 5 0 0 0 - - -;
#X msg -89 592 mode \$1;
#X text -25 592 output mode;
#X obj 276 686 s boidParam;
#X obj -89 651 s boidParam;
#X text -25 611 parameter dump;
#X text -26 631 reset boids randomly inside flyrect;
#X text 367 121 number of neighbors each boid consults when flocking
;
#X text 366 298 strength of neighbor speed matching instinct;
#X text 366 333 strength of neighbor avoidance instinct;
#X text 366 365 strength of wall avoidance instinct;
#X text 368 401 distance of vision for avoiding wall edges;
#X text 369 472 willingness to change speed and direction;
#X text 365 261 strength of attraction to 'attractpt';
#X obj -62 470 print dump;
#X obj -141 420 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144
-1 -1;
#N canvas 26 51 643 590 gem_example 1;
#X msg 33 31 destroy;
#N canvas 494 140 629 324 gemwin 0;
#X obj 219 190 gemwin;
#X obj 66 194 outlet;
#X obj 67 10 inlet;
#X obj 67 41 route create;
#X msg 67 70 set destroy;
#X msg 157 70 set create;
#X msg 350 115 destroy \, reset;
#X msg 238 71 color 0 0 0.5;
#X msg 212 146 create \, 1 \, frame 30 \, color 1 1 1;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 3 0 8 0;
#X connect 3 1 5 0;
#X connect 3 1 6 0;
#X connect 4 0 1 0;
#X connect 5 0 1 0;
#X connect 6 0 0 0;
#X connect 7 0 0 0;
#X connect 8 0 0 0;
#X restore 33 51 pd gemwin;
#X obj 33 91 tgl 15 0 empty empty start_flocking_animation 20 6 1 10
-262144 -1 -1 0 1;
#X obj 204 135 r boidParam;
#X obj 33 112 metro 33;
#X floatatom 33 244 5 0 0 0 - - -;
#X floatatom 84 244 5 0 0 0 - - -;
#X obj 86 318 s boidParam;
#N canvas 0 22 466 316 orbit 0;
#X obj 103 82 counter 360;
#X floatatom 103 107 5 0 0 0 - - -;
#X obj 102 204 poltocar;
#X obj 134 169 expr $f1 * (3.141593/180.);
#X obj 103 134 t b f;
#X obj 103 45 inlet;
#X obj 152 254 outlet;
#X obj 96 254 outlet;
#X obj 102 170 1.5;
#X connect 0 0 1 0;
#X connect 1 0 4 0;
#X connect 2 0 6 0;
#X connect 2 1 7 0;
#X connect 3 0 2 1;
#X connect 4 0 8 0;
#X connect 4 1 3 0;
#X connect 5 0 0 0;
#X connect 8 0 2 0;
#X restore 33 222 pd orbit;
#X text 96 30 create/destroy OpenGl context;
#X obj 33 181 spigot;
#X obj 69 160 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
;
#X obj 339 113 s init;
#X obj 358 84 loadbang;
#X obj 340 85 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#N canvas 0 22 418 379 center 0;
#X obj 101 37 gemhead;
#X obj 99 201 translateXYZ;
#X obj 124 166 unpack 0 0 0;
#X obj 147 94 inlet;
#X obj 252 106 loadbang;
#X obj 100 131 alpha;
#X obj 99 228 circle 0.1;
#X obj 101 68 color 0 0 0;
#X msg 240 193 draw fill;
#X connect 0 0 7 0;
#X connect 1 0 6 0;
#X connect 2 0 1 1;
#X connect 2 1 1 2;
#X connect 2 2 1 3;
#X connect 3 0 2 0;
#X connect 4 0 8 0;
#X connect 5 0 1 0;
#X connect 7 0 5 0;
#X connect 8 0 6 0;
#X restore 32 342 pd center;
#X obj 33 267 pack 0 0;
#X obj 205 163 boids2d 10;
#X obj 206 191 route 0 1 2 3 4 5 6 7 8 9;
#X msg 85 295 attractpt \$1 \$2 0;
#X obj 153 246 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X floatatom 235 426 5 0 0 0 - - -;
#X obj 440 372 sinc-audioanalise;
#X floatatom 548 528 5 0 0 0 - - -;
#X floatatom 317 507 5 0 0 0 - - -;
#X obj 374 552 sinc-escala-linear 30 127 -4 6;
#X obj 128 457 line;
#X msg 121 423 \$1 500;
#X obj 138 527 line;
#X msg 131 493 \$1 500;
#X obj 206 247 boidzz;
#X obj 337 272 boidzz;
#X obj 223 319 boidzz;
#X obj 205 266 boidzz;
#X obj 210 286 boidzz;
#X obj 245 263 boidzz;
#X obj 284 293 boidzz;
#X obj 286 277 boidzz;
#X obj 309 271 boidzz;
#X obj 314 255 boidzz;
#X obj 426 144 sinc-sample;
#X obj 335 371;
#X obj 366 363 dac~;
#X obj 221 530 sinc-escala-linear 0.005 0.04 -4 6;
#X connect 0 0 1 0;
#X connect 1 0 0 0;
#X connect 2 0 4 0;
#X connect 3 0 17 0;
#X connect 4 0 10 0;
#X connect 4 0 17 0;
#X connect 5 0 16 0;
#X connect 6 0 16 1;
#X connect 8 0 5 0;
#X connect 8 1 6 0;
#X connect 10 0 8 0;
#X connect 11 0 10 1;
#X connect 13 0 12 0;
#X connect 13 0 11 0;
#X connect 14 0 12 0;
#X connect 16 0 19 0;
#X connect 16 0 15 0;
#X connect 16 0 20 0;
#X connect 17 0 18 0;
#X connect 18 0 30 0;
#X connect 18 1 33 0;
#X connect 18 2 34 0;
#X connect 18 3 32 0;
#X connect 18 4 35 0;
#X connect 18 5 36 0;
#X connect 18 6 37 0;
#X connect 18 7 38 0;
#X connect 18 8 39 0;
#X connect 18 9 31 0;
#X connect 19 0 7 0;
#X connect 20 0 17 0;
#X connect 22 2 24 0;
#X connect 22 4 23 0;
#X connect 23 0 25 0;
#X connect 24 0 43 0;
#X connect 25 0 29 0;
#X connect 26 0 6 0;
#X connect 27 0 26 0;
#X connect 28 0 5 0;
#X connect 29 0 28 0;
#X connect 40 0 22 0;
#X connect 40 0 42 0;
#X connect 40 0 42 1;
#X connect 43 0 27 0;
#X restore 67 440 pd gem_example;
#X obj 276 584 pack 0 0 0 0 0 0;
#X obj 276 642 pack 0 0 0;
#X floatatom 355 625 5 0 0 0 - - -;
#N canvas 754 114 186 506 init 0;
#X obj 34 21 loadbang;
#X obj 94 21 r reset;
#X msg 15 78 \; neighbors 4;
#X msg 15 348 \; speed 3;
#X obj 16 49 b;
#X obj 17 21 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X msg 15 438 \; prefdist 1.5;
#X msg 15 108 \; maxspeed 1.5;
#X msg 15 138 \; minspeed 1.2;
#X msg 15 168 \; center 1.2;
#X msg 15 198 \; attract 1.25;
#X msg 15 228 \; match 0.3;
#X msg 15 288 \; repel 3.5;
#X msg 15 258 \; avoid 3.5;
#X msg 15 318 \; edgedist 3;
#X msg 15 379 \; inertia 4.5;
#X msg 15 408 \; accel 2.5;
#X connect 0 0 4 0;
#X connect 1 0 4 0;
#X connect 4 0 2 0;
#X connect 4 0 7 0;
#X connect 4 0 8 0;
#X connect 4 0 9 0;
#X connect 4 0 10 0;
#X connect 4 0 11 0;
#X connect 4 0 13 0;
#X connect 4 0 12 0;
#X connect 4 0 3 0;
#X connect 4 0 15 0;
#X connect 4 0 16 0;
#X connect 4 0 6 0;
#X connect 5 0 4 0;
#X restore 67 421 pd init;
#X obj -141 448 boids2d 16 0;
#X obj -140 498 print boids2d;
#X msg 276 602 flyrect \$1 \$2 \$3 \$4;
#X msg 276 662 attractpt \$1 \$2;
#X text 399 624 point to which boids are attracted (x/y);
#X text 402 585 bounding box (walls) in which to fly (l/t/r/b);
#X connect 1 0 49 0;
#X connect 2 0 48 0;
#X connect 3 0 2 0;
#X connect 4 0 5 0;
#X connect 5 0 48 0;
#X connect 6 0 7 0;
#X connect 7 0 48 0;
#X connect 8 0 9 0;
#X connect 9 0 48 0;
#X connect 10 0 11 0;
#X connect 11 0 48 0;
#X connect 12 0 13 0;
#X connect 13 0 48 0;
#X connect 14 0 15 0;
#X connect 15 0 48 0;
#X connect 16 0 66 0;
#X connect 17 0 18 0;
#X connect 18 0 48 0;
#X connect 19 0 20 0;
#X connect 20 0 48 0;
#X connect 21 0 22 0;
#X connect 22 0 48 0;
#X connect 23 0 24 0;
#X connect 24 0 48 0;
#X connect 25 0 26 0;
#X connect 26 0 48 0;
#X connect 27 0 28 0;
#X connect 28 0 48 0;
#X connect 29 0 49 0;
#X connect 36 0 62 0;
#X connect 37 0 62 1;
#X connect 38 0 62 2;
#X connect 39 0 62 3;
#X connect 40 0 63 0;
#X connect 41 0 63 1;
#X connect 42 0 43 0;
#X connect 43 0 48 0;
#X connect 45 0 46 0;
#X connect 46 0 49 0;
#X connect 60 0 66 0;
#X connect 62 0 68 0;
#X connect 63 0 69 0;
#X connect 64 0 63 2;
#X connect 66 0 67 0;
#X connect 66 1 59 0;
#X connect 68 0 48 0;
#X connect 69 0 48 0;