#N canvas 61 69 970 701 10; #X declare -lib cyclone -lib Gem; #X msg -99 601 dump; #X msg 266 113 neighbors \$1; #X floatatom 266 98 5 0 4 0 - neighbors -; #X floatatom 266 133 5 0 0 0 - maxspeed -; #X msg 266 148 maxspeed \$1; #X floatatom 266 168 5 0 0 0 - minspeed -; #X msg 266 183 minspeed \$1; #X floatatom 266 203 5 0 0 0 - center -; #X msg 266 218 center \$1; #X floatatom 266 238 5 0 0 0 - attract -; #X msg 266 253 attract \$1; #X floatatom 266 273 5 0 0 0 - match -; #X msg 266 288 match \$1; #X floatatom 266 308 5 0 0 0 - avoid -; #X msg 266 323 avoid \$1; #X obj -125 411 r boidParam; #X floatatom 266 343 5 0 0 0 - repel -; #X msg 266 358 repel \$1; #X floatatom 266 378 5 0 0 0 - edgedist -; #X msg 266 393 edgedist \$1; #X floatatom 266 413 5 0 0 0 - speed -; #X msg 266 428 speed \$1; #X floatatom 266 448 5 0 0 0 - inertia -; #X msg 266 463 inertia \$1; #X floatatom 266 483 5 0 0 0 - accel -; #X msg 266 498 accel \$1; #X floatatom 266 518 5 0 0 0 - prefdist -; #X msg 266 533 prefdist \$1; #X msg -99 620 reset; #X text 357 148 maximum speed of speed range; #X text 359 182 minimum speed of speed range; #X text 356 217 strength of centering instinct; #X text 358 428 overall speed; #X text 359 499 speed of acceleration; #X text 359 530 preferred distance from neighbors; #X floatatom 267 556 5 0 0 0 - flyrect[0] -; #X floatatom 306 556 5 0 0 0 - flyrect[1] -; #X floatatom 345 556 5 0 0 0 - flyrect[2] -; #X floatatom 384 556 5 0 0 0 - - -; #X floatatom 266 615 5 0 0 0 - - -; #X floatatom 306 615 5 0 0 0 - - -; #X floatatom 266 63 5 0 0 0 - - -; #X msg 266 78 number \$1; #X text 357 76 number of boids; #X floatatom -99 567 5 0 0 0 - - -; #X msg -99 582 mode \$1; #X text -35 582 output mode; #X obj 266 676 s boidParam; #X obj -99 641 s boidParam; #X text -35 601 parameter dump; #X text -36 621 reset boids randomly inside flyrect; #X text 357 111 number of neighbors each boid consults when flocking ; #X text 356 288 strength of neighbor speed matching instinct; #X text 356 323 strength of neighbor avoidance instinct; #X text 356 355 strength of wall avoidance instinct; #X text 358 391 distance of vision for avoiding wall edges; #X text 359 462 willingness to change speed and direction; #X text 355 251 strength of attraction to 'attractpt'; #X text -191 84 (c) 1995-98 Eric L. Singer (eric@ericsinger.com); #X text -191 126 Based on Simon Fraser's implementation of Craig Reynolds' Boids algorithm. Boids is free for non-commercial use; #X text -191 159 Boids is a bird flight and animal flock simulator. It is based on the same algorithm which was used in Jurassic Park for the herding dinosaurs.; #X text -190 282 The flight parameters can be changed with messages. Use the 'dump' message to output a list of the current parameter settings. ; #X text -190 328 For more information about the Boids algorithm \, see Craig Reynolds' Web site at http://www.red3d.com/cwr/boids/; #X text -188 64 arguments: number of boids \, output mode; #X obj -72 460 print dump; #X obj -203 9 cnv 15 800 48 empty empty boids3d 20 12 2 24 -228915 -66577 0; #X obj -151 410 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #N canvas 241 22 783 706 gem_example 0; #X msg 33 31 create; #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; #X obj 33 267 pack 0 0 0; #X msg 85 295 attractpt \$1 \$2 \$3; #N canvas 0 22 414 375 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 msg 240 193 draw line; #X obj 252 106 loadbang; #X obj 100 131 alpha; #X obj 101 68 color 1 0.5 0 0.5; #X obj 99 228 circle 0.1; #X connect 0 0 7 0; #X connect 1 0 8 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 4 0; #X connect 6 0 1 0; #X connect 7 0 6 0; #X restore 32 342 pd center; #N canvas 213 30 510 360 boid 0; #X obj 100 24 gemhead; #X obj 99 201 translateXYZ; #X obj 192 162 unpack 0 0 0; #X obj 192 1 inlet; #X obj 100 155 alpha; #X obj 101 85 color 1 0.5 0 0.5; #N canvas 0 22 474 324 rand_color 0; #X obj 47 130 random 1000; #X obj 48 171 * 0.001; #X obj 131 130 random 1000; #X obj 132 171 * 0.001; #X obj 214 131 random 1000; #X obj 215 172 * 0.001; #X obj 46 83 t b b b; #X obj 48 256 outlet; #X obj 47 26 r init; #X obj 49 217 pack 0 0 0 0.5; #X connect 0 0 1 0; #X connect 1 0 9 0; #X connect 2 0 3 0; #X connect 3 0 9 1; #X connect 4 0 5 0; #X connect 5 0 9 2; #X connect 6 0 0 0; #X connect 6 1 2 0; #X connect 6 2 4 0; #X connect 8 0 6 0; #X connect 9 0 7 0; #X restore 214 58 pd rand_color; #X obj 231 85 t 1; #X obj 99 228 circle 0.05; #X connect 0 0 5 0; #X connect 1 0 8 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 1 0; #X connect 5 0 4 0; #X connect 6 0 5 1; #X connect 6 0 7 0; #X connect 7 0 4 1; #X restore 206 227 pd boid; #N canvas 213 30 510 360 boid 0; #X obj 100 24 gemhead; #X obj 99 201 translateXYZ; #X obj 192 162 unpack 0 0 0; #X obj 192 1 inlet; #X obj 100 155 alpha; #X obj 101 85 color 1 0.5 0 0.5; #N canvas 0 22 474 324 rand_color 0; #X obj 47 130 random 1000; #X obj 48 171 * 0.001; #X obj 131 130 random 1000; #X obj 132 171 * 0.001; #X obj 214 131 random 1000; #X obj 215 172 * 0.001; #X obj 46 83 t b b b; #X obj 48 256 outlet; #X obj 47 26 r init; #X obj 49 217 pack 0 0 0 0.5; #X connect 0 0 1 0; #X connect 1 0 9 0; #X connect 2 0 3 0; #X connect 3 0 9 1; #X connect 4 0 5 0; #X connect 5 0 9 2; #X connect 6 0 0 0; #X connect 6 1 2 0; #X connect 6 2 4 0; #X connect 8 0 6 0; #X connect 9 0 7 0; #X restore 214 58 pd rand_color; #X obj 231 85 t 1; #X obj 99 228 circle 0.05; #X connect 0 0 5 0; #X connect 1 0 8 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 1 0; #X connect 5 0 4 0; #X connect 6 0 5 1; #X connect 6 0 7 0; #X connect 7 0 4 1; #X restore 216 237 pd boid; #N canvas 213 30 510 360 boid 0; #X obj 100 24 gemhead; #X obj 99 201 translateXYZ; #X obj 192 162 unpack 0 0 0; #X obj 192 1 inlet; #X obj 100 155 alpha; #X obj 101 85 color 1 0.5 0 0.5; #N canvas 0 22 474 324 rand_color 0; #X obj 47 130 random 1000; #X obj 48 171 * 0.001; #X obj 131 130 random 1000; #X obj 132 171 * 0.001; #X obj 214 131 random 1000; #X obj 215 172 * 0.001; #X obj 46 83 t b b b; #X obj 48 256 outlet; #X obj 47 26 r init; #X obj 49 217 pack 0 0 0 0.5; #X connect 0 0 1 0; #X connect 1 0 9 0; #X connect 2 0 3 0; #X connect 3 0 9 1; #X connect 4 0 5 0; #X connect 5 0 9 2; #X connect 6 0 0 0; #X connect 6 1 2 0; #X connect 6 2 4 0; #X connect 8 0 6 0; #X connect 9 0 7 0; #X restore 214 58 pd rand_color; #X obj 231 85 t 1; #X obj 99 228 circle 0.05; #X connect 0 0 5 0; #X connect 1 0 8 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 1 0; #X connect 5 0 4 0; #X connect 6 0 5 1; #X connect 6 0 7 0; #X connect 7 0 4 1; #X restore 226 247 pd boid; #N canvas 213 30 510 360 boid 0; #X obj 100 24 gemhead; #X obj 99 201 translateXYZ; #X obj 192 162 unpack 0 0 0; #X obj 192 1 inlet; #X obj 100 155 alpha; #X obj 101 85 color 1 0.5 0 0.5; #N canvas 0 22 474 324 rand_color 0; #X obj 47 130 random 1000; #X obj 48 171 * 0.001; #X obj 131 130 random 1000; #X obj 132 171 * 0.001; #X obj 214 131 random 1000; #X obj 215 172 * 0.001; #X obj 46 83 t b b b; #X obj 48 256 outlet; #X obj 47 26 r init; #X obj 49 217 pack 0 0 0 0.5; #X connect 0 0 1 0; #X connect 1 0 9 0; #X connect 2 0 3 0; #X connect 3 0 9 1; #X connect 4 0 5 0; #X connect 5 0 9 2; #X connect 6 0 0 0; #X connect 6 1 2 0; #X connect 6 2 4 0; #X connect 8 0 6 0; #X connect 9 0 7 0; #X restore 214 58 pd rand_color; #X obj 231 85 t 1; #X obj 99 228 circle 0.05; #X connect 0 0 5 0; #X connect 1 0 8 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 1 0; #X connect 5 0 4 0; #X connect 6 0 5 1; #X connect 6 0 7 0; #X connect 7 0 4 1; #X restore 236 257 pd boid; #N canvas 213 30 510 360 boid 0; #X obj 100 24 gemhead; #X obj 99 201 translateXYZ; #X obj 192 162 unpack 0 0 0; #X obj 192 1 inlet; #X obj 100 155 alpha; #X obj 101 85 color 1 0.5 0 0.5; #N canvas 0 22 474 324 rand_color 0; #X obj 47 130 random 1000; #X obj 48 171 * 0.001; #X obj 131 130 random 1000; #X obj 132 171 * 0.001; #X obj 214 131 random 1000; #X obj 215 172 * 0.001; #X obj 46 83 t b b b; #X obj 48 256 outlet; #X obj 47 26 r init; #X obj 49 217 pack 0 0 0 0.5; #X connect 0 0 1 0; #X connect 1 0 9 0; #X connect 2 0 3 0; #X connect 3 0 9 1; #X connect 4 0 5 0; #X connect 5 0 9 2; #X connect 6 0 0 0; #X connect 6 1 2 0; #X connect 6 2 4 0; #X connect 8 0 6 0; #X connect 9 0 7 0; #X restore 214 58 pd rand_color; #X obj 231 85 t 1; #X obj 99 228 circle 0.05; #X connect 0 0 5 0; #X connect 1 0 8 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 1 0; #X connect 5 0 4 0; #X connect 6 0 5 1; #X connect 6 0 7 0; #X connect 7 0 4 1; #X restore 246 267 pd boid; #N canvas 213 30 510 360 boid 0; #X obj 100 24 gemhead; #X obj 99 201 translateXYZ; #X obj 192 162 unpack 0 0 0; #X obj 192 1 inlet; #X obj 100 155 alpha; #X obj 101 85 color 1 0.5 0 0.5; #N canvas 0 22 474 324 rand_color 0; #X obj 47 130 random 1000; #X obj 48 171 * 0.001; #X obj 131 130 random 1000; #X obj 132 171 * 0.001; #X obj 214 131 random 1000; #X obj 215 172 * 0.001; #X obj 46 83 t b b b; #X obj 48 256 outlet; #X obj 47 26 r init; #X obj 49 217 pack 0 0 0 0.5; #X connect 0 0 1 0; #X connect 1 0 9 0; #X connect 2 0 3 0; #X connect 3 0 9 1; #X connect 4 0 5 0; #X connect 5 0 9 2; #X connect 6 0 0 0; #X connect 6 1 2 0; #X connect 6 2 4 0; #X connect 8 0 6 0; #X connect 9 0 7 0; #X restore 214 58 pd rand_color; #X obj 231 85 t 1; #X obj 99 228 circle 0.05; #X connect 0 0 5 0; #X connect 1 0 8 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 1 0; #X connect 5 0 4 0; #X connect 6 0 5 1; #X connect 6 0 7 0; #X connect 7 0 4 1; #X restore 256 277 pd boid; #N canvas 213 30 510 360 boid 0; #X obj 100 24 gemhead; #X obj 99 201 translateXYZ; #X obj 192 162 unpack 0 0 0; #X obj 192 1 inlet; #X obj 100 155 alpha; #X obj 101 85 color 1 0.5 0 0.5; #N canvas 0 22 474 324 rand_color 0; #X obj 47 130 random 1000; #X obj 48 171 * 0.001; #X obj 131 130 random 1000; #X obj 132 171 * 0.001; #X obj 214 131 random 1000; #X obj 215 172 * 0.001; #X obj 46 83 t b b b; #X obj 48 256 outlet; #X obj 47 26 r init; #X obj 49 217 pack 0 0 0 0.5; #X connect 0 0 1 0; #X connect 1 0 9 0; #X connect 2 0 3 0; #X connect 3 0 9 1; #X connect 4 0 5 0; #X connect 5 0 9 2; #X connect 6 0 0 0; #X connect 6 1 2 0; #X connect 6 2 4 0; #X connect 8 0 6 0; #X connect 9 0 7 0; #X restore 214 58 pd rand_color; #X obj 231 85 t 1; #X obj 99 228 circle 0.05; #X connect 0 0 5 0; #X connect 1 0 8 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 1 0; #X connect 5 0 4 0; #X connect 6 0 5 1; #X connect 6 0 7 0; #X connect 7 0 4 1; #X restore 266 287 pd boid; #N canvas 213 30 510 360 boid 0; #X obj 100 24 gemhead; #X obj 99 201 translateXYZ; #X obj 192 162 unpack 0 0 0; #X obj 192 1 inlet; #X obj 100 155 alpha; #X obj 101 85 color 1 0.5 0 0.5; #N canvas 0 22 474 324 rand_color 0; #X obj 47 130 random 1000; #X obj 48 171 * 0.001; #X obj 131 130 random 1000; #X obj 132 171 * 0.001; #X obj 214 131 random 1000; #X obj 215 172 * 0.001; #X obj 46 83 t b b b; #X obj 48 256 outlet; #X obj 47 26 r init; #X obj 49 217 pack 0 0 0 0.5; #X connect 0 0 1 0; #X connect 1 0 9 0; #X connect 2 0 3 0; #X connect 3 0 9 1; #X connect 4 0 5 0; #X connect 5 0 9 2; #X connect 6 0 0 0; #X connect 6 1 2 0; #X connect 6 2 4 0; #X connect 8 0 6 0; #X connect 9 0 7 0; #X restore 214 58 pd rand_color; #X obj 231 85 t 1; #X obj 99 228 circle 0.05; #X connect 0 0 5 0; #X connect 1 0 8 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 1 0; #X connect 5 0 4 0; #X connect 6 0 5 1; #X connect 6 0 7 0; #X connect 7 0 4 1; #X restore 276 297 pd boid; #N canvas 213 30 510 360 boid 0; #X obj 100 24 gemhead; #X obj 99 201 translateXYZ; #X obj 192 162 unpack 0 0 0; #X obj 192 1 inlet; #X obj 100 155 alpha; #X obj 101 85 color 1 0.5 0 0.5; #N canvas 0 22 474 324 rand_color 0; #X obj 47 130 random 1000; #X obj 48 171 * 0.001; #X obj 131 130 random 1000; #X obj 132 171 * 0.001; #X obj 214 131 random 1000; #X obj 215 172 * 0.001; #X obj 46 83 t b b b; #X obj 48 256 outlet; #X obj 47 26 r init; #X obj 49 217 pack 0 0 0 0.5; #X connect 0 0 1 0; #X connect 1 0 9 0; #X connect 2 0 3 0; #X connect 3 0 9 1; #X connect 4 0 5 0; #X connect 5 0 9 2; #X connect 6 0 0 0; #X connect 6 1 2 0; #X connect 6 2 4 0; #X connect 8 0 6 0; #X connect 9 0 7 0; #X restore 214 58 pd rand_color; #X obj 231 85 t 1; #X obj 99 228 circle 0.05; #X connect 0 0 5 0; #X connect 1 0 8 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 1 0; #X connect 5 0 4 0; #X connect 6 0 5 1; #X connect 6 0 7 0; #X connect 7 0 4 1; #X restore 286 307 pd boid; #N canvas 213 30 510 360 boid 0; #X obj 100 24 gemhead; #X obj 99 201 translateXYZ; #X obj 192 162 unpack 0 0 0; #X obj 192 1 inlet; #X obj 100 155 alpha; #X obj 101 85 color 1 0.5 0 0.5; #N canvas 0 22 474 324 rand_color 0; #X obj 47 130 random 1000; #X obj 48 171 * 0.001; #X obj 131 130 random 1000; #X obj 132 171 * 0.001; #X obj 214 131 random 1000; #X obj 215 172 * 0.001; #X obj 46 83 t b b b; #X obj 48 256 outlet; #X obj 47 26 r init; #X obj 49 217 pack 0 0 0 0.5; #X connect 0 0 1 0; #X connect 1 0 9 0; #X connect 2 0 3 0; #X connect 3 0 9 1; #X connect 4 0 5 0; #X connect 5 0 9 2; #X connect 6 0 0 0; #X connect 6 1 2 0; #X connect 6 2 4 0; #X connect 8 0 6 0; #X connect 9 0 7 0; #X restore 214 58 pd rand_color; #X obj 231 85 t 1; #X obj 99 228 circle 0.05; #X connect 0 0 5 0; #X connect 1 0 8 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 1 0; #X connect 5 0 4 0; #X connect 6 0 5 1; #X connect 6 0 7 0; #X connect 7 0 4 1; #X restore 296 317 pd boid; #N canvas 213 30 510 360 boid 0; #X obj 100 24 gemhead; #X obj 99 201 translateXYZ; #X obj 192 162 unpack 0 0 0; #X obj 192 1 inlet; #X obj 100 155 alpha; #X obj 101 85 color 1 0.5 0 0.5; #N canvas 0 22 474 324 rand_color 0; #X obj 47 130 random 1000; #X obj 48 171 * 0.001; #X obj 131 130 random 1000; #X obj 132 171 * 0.001; #X obj 214 131 random 1000; #X obj 215 172 * 0.001; #X obj 46 83 t b b b; #X obj 48 256 outlet; #X obj 47 26 r init; #X obj 49 217 pack 0 0 0 0.5; #X connect 0 0 1 0; #X connect 1 0 9 0; #X connect 2 0 3 0; #X connect 3 0 9 1; #X connect 4 0 5 0; #X connect 5 0 9 2; #X connect 6 0 0 0; #X connect 6 1 2 0; #X connect 6 2 4 0; #X connect 8 0 6 0; #X connect 9 0 7 0; #X restore 214 58 pd rand_color; #X obj 231 85 t 1; #X obj 99 228 circle 0.05; #X connect 0 0 5 0; #X connect 1 0 8 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 1 0; #X connect 5 0 4 0; #X connect 6 0 5 1; #X connect 6 0 7 0; #X connect 7 0 4 1; #X restore 306 327 pd boid; #N canvas 213 30 510 360 boid 0; #X obj 100 24 gemhead; #X obj 99 201 translateXYZ; #X obj 192 162 unpack 0 0 0; #X obj 192 1 inlet; #X obj 100 155 alpha; #X obj 101 85 color 1 0.5 0 0.5; #N canvas 0 22 474 324 rand_color 0; #X obj 47 130 random 1000; #X obj 48 171 * 0.001; #X obj 131 130 random 1000; #X obj 132 171 * 0.001; #X obj 214 131 random 1000; #X obj 215 172 * 0.001; #X obj 46 83 t b b b; #X obj 48 256 outlet; #X obj 47 26 r init; #X obj 49 217 pack 0 0 0 0.5; #X connect 0 0 1 0; #X connect 1 0 9 0; #X connect 2 0 3 0; #X connect 3 0 9 1; #X connect 4 0 5 0; #X connect 5 0 9 2; #X connect 6 0 0 0; #X connect 6 1 2 0; #X connect 6 2 4 0; #X connect 8 0 6 0; #X connect 9 0 7 0; #X restore 214 58 pd rand_color; #X obj 231 85 t 1; #X obj 99 228 circle 0.05; #X connect 0 0 5 0; #X connect 1 0 8 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 1 0; #X connect 5 0 4 0; #X connect 6 0 5 1; #X connect 6 0 7 0; #X connect 7 0 4 1; #X restore 316 337 pd boid; #N canvas 213 30 510 360 boid 0; #X obj 100 24 gemhead; #X obj 99 201 translateXYZ; #X obj 192 162 unpack 0 0 0; #X obj 192 1 inlet; #X obj 100 155 alpha; #X obj 101 85 color 1 0.5 0 0.5; #N canvas 0 22 474 324 rand_color 0; #X obj 47 130 random 1000; #X obj 48 171 * 0.001; #X obj 131 130 random 1000; #X obj 132 171 * 0.001; #X obj 214 131 random 1000; #X obj 215 172 * 0.001; #X obj 46 83 t b b b; #X obj 48 256 outlet; #X obj 47 26 r init; #X obj 49 217 pack 0 0 0 0.5; #X connect 0 0 1 0; #X connect 1 0 9 0; #X connect 2 0 3 0; #X connect 3 0 9 1; #X connect 4 0 5 0; #X connect 5 0 9 2; #X connect 6 0 0 0; #X connect 6 1 2 0; #X connect 6 2 4 0; #X connect 8 0 6 0; #X connect 9 0 7 0; #X restore 214 58 pd rand_color; #X obj 231 85 t 1; #X obj 99 228 circle 0.05; #X connect 0 0 5 0; #X connect 1 0 8 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 1 0; #X connect 5 0 4 0; #X connect 6 0 5 1; #X connect 6 0 7 0; #X connect 7 0 4 1; #X restore 326 347 pd boid; #N canvas 213 30 510 360 boid 0; #X obj 100 24 gemhead; #X obj 99 201 translateXYZ; #X obj 192 162 unpack 0 0 0; #X obj 192 1 inlet; #X obj 100 155 alpha; #X obj 101 85 color 1 0.5 0 0.5; #N canvas 0 22 474 324 rand_color 0; #X obj 47 130 random 1000; #X obj 48 171 * 0.001; #X obj 131 130 random 1000; #X obj 132 171 * 0.001; #X obj 214 131 random 1000; #X obj 215 172 * 0.001; #X obj 46 83 t b b b; #X obj 48 256 outlet; #X obj 47 26 r init; #X obj 49 217 pack 0 0 0 0.5; #X connect 0 0 1 0; #X connect 1 0 9 0; #X connect 2 0 3 0; #X connect 3 0 9 1; #X connect 4 0 5 0; #X connect 5 0 9 2; #X connect 6 0 0 0; #X connect 6 1 2 0; #X connect 6 2 4 0; #X connect 8 0 6 0; #X connect 9 0 7 0; #X restore 214 58 pd rand_color; #X obj 231 85 t 1; #X obj 99 228 circle 0.05; #X connect 0 0 5 0; #X connect 1 0 8 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 1 0; #X connect 5 0 4 0; #X connect 6 0 5 1; #X connect 6 0 7 0; #X connect 7 0 4 1; #X restore 336 357 pd boid; #N canvas 213 30 510 360 boid 0; #X obj 100 24 gemhead; #X obj 99 201 translateXYZ; #X obj 192 162 unpack 0 0 0; #X obj 192 1 inlet; #X obj 100 155 alpha; #X obj 101 85 color 1 0.5 0 0.5; #N canvas 0 22 474 324 rand_color 0; #X obj 47 130 random 1000; #X obj 48 171 * 0.001; #X obj 131 130 random 1000; #X obj 132 171 * 0.001; #X obj 214 131 random 1000; #X obj 215 172 * 0.001; #X obj 46 83 t b b b; #X obj 48 256 outlet; #X obj 47 26 r init; #X obj 49 217 pack 0 0 0 0.5; #X connect 0 0 1 0; #X connect 1 0 9 0; #X connect 2 0 3 0; #X connect 3 0 9 1; #X connect 4 0 5 0; #X connect 5 0 9 2; #X connect 6 0 0 0; #X connect 6 1 2 0; #X connect 6 2 4 0; #X connect 8 0 6 0; #X connect 9 0 7 0; #X restore 214 58 pd rand_color; #X obj 231 85 t 1; #X obj 99 228 circle 0.05; #X connect 0 0 5 0; #X connect 1 0 8 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 1 0; #X connect 5 0 4 0; #X connect 6 0 5 1; #X connect 6 0 7 0; #X connect 7 0 4 1; #X restore 346 367 pd boid; #N canvas 213 30 510 360 boid 0; #X obj 100 24 gemhead; #X obj 99 201 translateXYZ; #X obj 192 162 unpack 0 0 0; #X obj 192 1 inlet; #X obj 100 155 alpha; #X obj 101 85 color 1 0.5 0 0.5; #N canvas 0 22 474 324 rand_color 0; #X obj 47 130 random 1000; #X obj 48 171 * 0.001; #X obj 131 130 random 1000; #X obj 132 171 * 0.001; #X obj 214 131 random 1000; #X obj 215 172 * 0.001; #X obj 46 83 t b b b; #X obj 48 256 outlet; #X obj 47 26 r init; #X obj 49 217 pack 0 0 0 0.5; #X connect 0 0 1 0; #X connect 1 0 9 0; #X connect 2 0 3 0; #X connect 3 0 9 1; #X connect 4 0 5 0; #X connect 5 0 9 2; #X connect 6 0 0 0; #X connect 6 1 2 0; #X connect 6 2 4 0; #X connect 8 0 6 0; #X connect 9 0 7 0; #X restore 214 58 pd rand_color; #X obj 231 85 t 1; #X obj 99 228 circle 0.05; #X connect 0 0 5 0; #X connect 1 0 8 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 1 0; #X connect 5 0 4 0; #X connect 6 0 5 1; #X connect 6 0 7 0; #X connect 7 0 4 1; #X restore 356 377 pd boid; #N canvas 213 30 510 360 boid 0; #X obj 100 24 gemhead; #X obj 99 201 translateXYZ; #X obj 192 162 unpack 0 0 0; #X obj 192 1 inlet; #X obj 100 155 alpha; #X obj 101 85 color 1 0.5 0 0.5; #N canvas 0 22 474 324 rand_color 0; #X obj 47 130 random 1000; #X obj 48 171 * 0.001; #X obj 131 130 random 1000; #X obj 132 171 * 0.001; #X obj 214 131 random 1000; #X obj 215 172 * 0.001; #X obj 46 83 t b b b; #X obj 48 256 outlet; #X obj 47 26 r init; #X obj 49 217 pack 0 0 0 0.5; #X connect 0 0 1 0; #X connect 1 0 9 0; #X connect 2 0 3 0; #X connect 3 0 9 1; #X connect 4 0 5 0; #X connect 5 0 9 2; #X connect 6 0 0 0; #X connect 6 1 2 0; #X connect 6 2 4 0; #X connect 8 0 6 0; #X connect 9 0 7 0; #X restore 214 58 pd rand_color; #X obj 231 85 t 1; #X obj 99 228 circle 0.05; #X connect 0 0 5 0; #X connect 1 0 8 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 1 0; #X connect 5 0 4 0; #X connect 6 0 5 1; #X connect 6 0 7 0; #X connect 7 0 4 1; #X restore 366 387 pd boid; #N canvas 213 30 510 360 boid 0; #X obj 100 24 gemhead; #X obj 99 201 translateXYZ; #X obj 192 162 unpack 0 0 0; #X obj 192 1 inlet; #X obj 100 155 alpha; #X obj 101 85 color 1 0.5 0 0.5; #N canvas 0 22 474 324 rand_color 0; #X obj 47 130 random 1000; #X obj 48 171 * 0.001; #X obj 131 130 random 1000; #X obj 132 171 * 0.001; #X obj 214 131 random 1000; #X obj 215 172 * 0.001; #X obj 46 83 t b b b; #X obj 48 256 outlet; #X obj 47 26 r init; #X obj 49 217 pack 0 0 0 0.5; #X connect 0 0 1 0; #X connect 1 0 9 0; #X connect 2 0 3 0; #X connect 3 0 9 1; #X connect 4 0 5 0; #X connect 5 0 9 2; #X connect 6 0 0 0; #X connect 6 1 2 0; #X connect 6 2 4 0; #X connect 8 0 6 0; #X connect 9 0 7 0; #X restore 214 58 pd rand_color; #X obj 231 85 t 1; #X obj 99 228 circle 0.05; #X connect 0 0 5 0; #X connect 1 0 8 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 1 0; #X connect 5 0 4 0; #X connect 6 0 5 1; #X connect 6 0 7 0; #X connect 7 0 4 1; #X restore 376 397 pd boid; #N canvas 213 30 510 360 boid 0; #X obj 100 24 gemhead; #X obj 99 201 translateXYZ; #X obj 192 162 unpack 0 0 0; #X obj 192 1 inlet; #X obj 100 155 alpha; #X obj 101 85 color 1 0.5 0 0.5; #N canvas 0 22 474 324 rand_color 0; #X obj 47 130 random 1000; #X obj 48 171 * 0.001; #X obj 131 130 random 1000; #X obj 132 171 * 0.001; #X obj 214 131 random 1000; #X obj 215 172 * 0.001; #X obj 46 83 t b b b; #X obj 48 256 outlet; #X obj 47 26 r init; #X obj 49 217 pack 0 0 0 0.5; #X connect 0 0 1 0; #X connect 1 0 9 0; #X connect 2 0 3 0; #X connect 3 0 9 1; #X connect 4 0 5 0; #X connect 5 0 9 2; #X connect 6 0 0 0; #X connect 6 1 2 0; #X connect 6 2 4 0; #X connect 8 0 6 0; #X connect 9 0 7 0; #X restore 214 58 pd rand_color; #X obj 231 85 t 1; #X obj 99 228 circle 0.05; #X connect 0 0 5 0; #X connect 1 0 8 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 1 0; #X connect 5 0 4 0; #X connect 6 0 5 1; #X connect 6 0 7 0; #X connect 7 0 4 1; #X restore 386 407 pd boid; #N canvas 213 30 514 364 boid 0; #X obj 100 24 gemhead; #X obj 99 201 translateXYZ; #X obj 192 162 unpack 0 0 0; #X obj 192 1 inlet; #X obj 100 155 alpha; #X obj 101 85 color 1 0.5 0 0.5; #N canvas 0 22 474 324 rand_color 0; #X obj 47 130 random 1000; #X obj 48 171 * 0.001; #X obj 131 130 random 1000; #X obj 132 171 * 0.001; #X obj 214 131 random 1000; #X obj 215 172 * 0.001; #X obj 46 83 t b b b; #X obj 48 256 outlet; #X obj 47 26 r init; #X obj 49 217 pack 0 0 0 0.5; #X connect 0 0 1 0; #X connect 1 0 9 0; #X connect 2 0 3 0; #X connect 3 0 9 1; #X connect 4 0 5 0; #X connect 5 0 9 2; #X connect 6 0 0 0; #X connect 6 1 2 0; #X connect 6 2 4 0; #X connect 8 0 6 0; #X connect 9 0 7 0; #X restore 214 58 pd rand_color; #X obj 231 85 t 1; #X obj 99 228 circle 0.05; #X connect 0 0 5 0; #X connect 1 0 8 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 1 0; #X connect 5 0 4 0; #X connect 6 0 5 1; #X connect 6 0 7 0; #X connect 7 0 4 1; #X restore 396 417 pd boid; #N canvas 213 30 514 364 boid 0; #X obj 100 24 gemhead; #X obj 99 201 translateXYZ; #X obj 192 162 unpack 0 0 0; #X obj 192 1 inlet; #X obj 100 155 alpha; #X obj 101 85 color 1 0.5 0 0.5; #N canvas 0 22 474 324 rand_color 0; #X obj 47 130 random 1000; #X obj 48 171 * 0.001; #X obj 131 130 random 1000; #X obj 132 171 * 0.001; #X obj 214 131 random 1000; #X obj 215 172 * 0.001; #X obj 46 83 t b b b; #X obj 48 256 outlet; #X obj 47 26 r init; #X obj 49 217 pack 0 0 0 0.5; #X connect 0 0 1 0; #X connect 1 0 9 0; #X connect 2 0 3 0; #X connect 3 0 9 1; #X connect 4 0 5 0; #X connect 5 0 9 2; #X connect 6 0 0 0; #X connect 6 1 2 0; #X connect 6 2 4 0; #X connect 8 0 6 0; #X connect 9 0 7 0; #X restore 214 58 pd rand_color; #X obj 231 85 t 1; #X obj 99 228 circle 0.05; #X connect 0 0 5 0; #X connect 1 0 8 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 1 0; #X connect 5 0 4 0; #X connect 6 0 5 1; #X connect 6 0 7 0; #X connect 7 0 4 1; #X restore 406 427 pd boid; #N canvas 213 30 514 364 boid 0; #X obj 100 24 gemhead; #X obj 99 201 translateXYZ; #X obj 192 162 unpack 0 0 0; #X obj 192 1 inlet; #X obj 100 155 alpha; #X obj 101 85 color 1 0.5 0 0.5; #N canvas 0 22 474 324 rand_color 0; #X obj 47 130 random 1000; #X obj 48 171 * 0.001; #X obj 131 130 random 1000; #X obj 132 171 * 0.001; #X obj 214 131 random 1000; #X obj 215 172 * 0.001; #X obj 46 83 t b b b; #X obj 48 256 outlet; #X obj 47 26 r init; #X obj 49 217 pack 0 0 0 0.5; #X connect 0 0 1 0; #X connect 1 0 9 0; #X connect 2 0 3 0; #X connect 3 0 9 1; #X connect 4 0 5 0; #X connect 5 0 9 2; #X connect 6 0 0 0; #X connect 6 1 2 0; #X connect 6 2 4 0; #X connect 8 0 6 0; #X connect 9 0 7 0; #X restore 214 58 pd rand_color; #X obj 231 85 t 1; #X obj 99 228 circle 0.05; #X connect 0 0 5 0; #X connect 1 0 8 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 1 0; #X connect 5 0 4 0; #X connect 6 0 5 1; #X connect 6 0 7 0; #X connect 7 0 4 1; #X restore 416 437 pd boid; #N canvas 213 30 514 364 boid 0; #X obj 100 24 gemhead; #X obj 99 201 translateXYZ; #X obj 192 162 unpack 0 0 0; #X obj 192 1 inlet; #X obj 100 155 alpha; #X obj 101 85 color 1 0.5 0 0.5; #N canvas 0 22 474 324 rand_color 0; #X obj 47 130 random 1000; #X obj 48 171 * 0.001; #X obj 131 130 random 1000; #X obj 132 171 * 0.001; #X obj 214 131 random 1000; #X obj 215 172 * 0.001; #X obj 46 83 t b b b; #X obj 48 256 outlet; #X obj 47 26 r init; #X obj 49 217 pack 0 0 0 0.5; #X connect 0 0 1 0; #X connect 1 0 9 0; #X connect 2 0 3 0; #X connect 3 0 9 1; #X connect 4 0 5 0; #X connect 5 0 9 2; #X connect 6 0 0 0; #X connect 6 1 2 0; #X connect 6 2 4 0; #X connect 8 0 6 0; #X connect 9 0 7 0; #X restore 214 58 pd rand_color; #X obj 231 85 t 1; #X obj 99 228 circle 0.05; #X connect 0 0 5 0; #X connect 1 0 8 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 1 0; #X connect 5 0 4 0; #X connect 6 0 5 1; #X connect 6 0 7 0; #X connect 7 0 4 1; #X restore 426 447 pd boid; #N canvas 213 30 514 364 boid 0; #X obj 100 24 gemhead; #X obj 99 201 translateXYZ; #X obj 192 162 unpack 0 0 0; #X obj 192 1 inlet; #X obj 100 155 alpha; #X obj 101 85 color 1 0.5 0 0.5; #N canvas 0 22 474 324 rand_color 0; #X obj 47 130 random 1000; #X obj 48 171 * 0.001; #X obj 131 130 random 1000; #X obj 132 171 * 0.001; #X obj 214 131 random 1000; #X obj 215 172 * 0.001; #X obj 46 83 t b b b; #X obj 48 256 outlet; #X obj 47 26 r init; #X obj 49 217 pack 0 0 0 0.5; #X connect 0 0 1 0; #X connect 1 0 9 0; #X connect 2 0 3 0; #X connect 3 0 9 1; #X connect 4 0 5 0; #X connect 5 0 9 2; #X connect 6 0 0 0; #X connect 6 1 2 0; #X connect 6 2 4 0; #X connect 8 0 6 0; #X connect 9 0 7 0; #X restore 214 58 pd rand_color; #X obj 231 85 t 1; #X obj 99 228 circle 0.05; #X connect 0 0 5 0; #X connect 1 0 8 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 1 0; #X connect 5 0 4 0; #X connect 6 0 5 1; #X connect 6 0 7 0; #X connect 7 0 4 1; #X restore 436 457 pd boid; #N canvas 213 30 514 364 boid 0; #X obj 100 24 gemhead; #X obj 99 201 translateXYZ; #X obj 192 162 unpack 0 0 0; #X obj 192 1 inlet; #X obj 100 155 alpha; #X obj 101 85 color 1 0.5 0 0.5; #N canvas 0 22 474 324 rand_color 0; #X obj 47 130 random 1000; #X obj 48 171 * 0.001; #X obj 131 130 random 1000; #X obj 132 171 * 0.001; #X obj 214 131 random 1000; #X obj 215 172 * 0.001; #X obj 46 83 t b b b; #X obj 48 256 outlet; #X obj 47 26 r init; #X obj 49 217 pack 0 0 0 0.5; #X connect 0 0 1 0; #X connect 1 0 9 0; #X connect 2 0 3 0; #X connect 3 0 9 1; #X connect 4 0 5 0; #X connect 5 0 9 2; #X connect 6 0 0 0; #X connect 6 1 2 0; #X connect 6 2 4 0; #X connect 8 0 6 0; #X connect 9 0 7 0; #X restore 214 58 pd rand_color; #X obj 231 85 t 1; #X obj 99 228 circle 0.05; #X connect 0 0 5 0; #X connect 1 0 8 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 1 0; #X connect 5 0 4 0; #X connect 6 0 5 1; #X connect 6 0 7 0; #X connect 7 0 4 1; #X restore 446 467 pd boid; #X obj 205 163 boids3d 40; #N canvas 213 30 514 364 boid 0; #X obj 100 24 gemhead; #X obj 99 201 translateXYZ; #X obj 192 162 unpack 0 0 0; #X obj 192 1 inlet; #X obj 100 155 alpha; #X obj 101 85 color 1 0.5 0 0.5; #N canvas 0 22 474 324 rand_color 0; #X obj 47 130 random 1000; #X obj 48 171 * 0.001; #X obj 131 130 random 1000; #X obj 132 171 * 0.001; #X obj 214 131 random 1000; #X obj 215 172 * 0.001; #X obj 46 83 t b b b; #X obj 48 256 outlet; #X obj 47 26 r init; #X obj 49 217 pack 0 0 0 0.5; #X connect 0 0 1 0; #X connect 1 0 9 0; #X connect 2 0 3 0; #X connect 3 0 9 1; #X connect 4 0 5 0; #X connect 5 0 9 2; #X connect 6 0 0 0; #X connect 6 1 2 0; #X connect 6 2 4 0; #X connect 8 0 6 0; #X connect 9 0 7 0; #X restore 214 58 pd rand_color; #X obj 231 85 t 1; #X obj 99 228 circle 0.05; #X connect 0 0 5 0; #X connect 1 0 8 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 1 0; #X connect 5 0 4 0; #X connect 6 0 5 1; #X connect 6 0 7 0; #X connect 7 0 4 1; #X restore 456 477 pd boid; #N canvas 213 30 514 364 boid 0; #X obj 100 24 gemhead; #X obj 99 201 translateXYZ; #X obj 192 162 unpack 0 0 0; #X obj 192 1 inlet; #X obj 100 155 alpha; #X obj 101 85 color 1 0.5 0 0.5; #N canvas 0 22 474 324 rand_color 0; #X obj 47 130 random 1000; #X obj 48 171 * 0.001; #X obj 131 130 random 1000; #X obj 132 171 * 0.001; #X obj 214 131 random 1000; #X obj 215 172 * 0.001; #X obj 46 83 t b b b; #X obj 48 256 outlet; #X obj 47 26 r init; #X obj 49 217 pack 0 0 0 0.5; #X connect 0 0 1 0; #X connect 1 0 9 0; #X connect 2 0 3 0; #X connect 3 0 9 1; #X connect 4 0 5 0; #X connect 5 0 9 2; #X connect 6 0 0 0; #X connect 6 1 2 0; #X connect 6 2 4 0; #X connect 8 0 6 0; #X connect 9 0 7 0; #X restore 214 58 pd rand_color; #X obj 231 85 t 1; #X obj 99 228 circle 0.05; #X connect 0 0 5 0; #X connect 1 0 8 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 1 0; #X connect 5 0 4 0; #X connect 6 0 5 1; #X connect 6 0 7 0; #X connect 7 0 4 1; #X restore 466 487 pd boid; #N canvas 213 30 514 364 boid 0; #X obj 100 24 gemhead; #X obj 99 201 translateXYZ; #X obj 192 162 unpack 0 0 0; #X obj 192 1 inlet; #X obj 100 155 alpha; #X obj 101 85 color 1 0.5 0 0.5; #N canvas 0 22 474 324 rand_color 0; #X obj 47 130 random 1000; #X obj 48 171 * 0.001; #X obj 131 130 random 1000; #X obj 132 171 * 0.001; #X obj 214 131 random 1000; #X obj 215 172 * 0.001; #X obj 46 83 t b b b; #X obj 48 256 outlet; #X obj 47 26 r init; #X obj 49 217 pack 0 0 0 0.5; #X connect 0 0 1 0; #X connect 1 0 9 0; #X connect 2 0 3 0; #X connect 3 0 9 1; #X connect 4 0 5 0; #X connect 5 0 9 2; #X connect 6 0 0 0; #X connect 6 1 2 0; #X connect 6 2 4 0; #X connect 8 0 6 0; #X connect 9 0 7 0; #X restore 214 58 pd rand_color; #X obj 231 85 t 1; #X obj 99 228 circle 0.05; #X connect 0 0 5 0; #X connect 1 0 8 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 1 0; #X connect 5 0 4 0; #X connect 6 0 5 1; #X connect 6 0 7 0; #X connect 7 0 4 1; #X restore 476 497 pd boid; #N canvas 213 30 514 364 boid 0; #X obj 100 24 gemhead; #X obj 99 201 translateXYZ; #X obj 192 162 unpack 0 0 0; #X obj 192 1 inlet; #X obj 100 155 alpha; #X obj 101 85 color 1 0.5 0 0.5; #N canvas 0 22 474 324 rand_color 0; #X obj 47 130 random 1000; #X obj 48 171 * 0.001; #X obj 131 130 random 1000; #X obj 132 171 * 0.001; #X obj 214 131 random 1000; #X obj 215 172 * 0.001; #X obj 46 83 t b b b; #X obj 48 256 outlet; #X obj 47 26 r init; #X obj 49 217 pack 0 0 0 0.5; #X connect 0 0 1 0; #X connect 1 0 9 0; #X connect 2 0 3 0; #X connect 3 0 9 1; #X connect 4 0 5 0; #X connect 5 0 9 2; #X connect 6 0 0 0; #X connect 6 1 2 0; #X connect 6 2 4 0; #X connect 8 0 6 0; #X connect 9 0 7 0; #X restore 214 58 pd rand_color; #X obj 231 85 t 1; #X obj 99 228 circle 0.05; #X connect 0 0 5 0; #X connect 1 0 8 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 1 0; #X connect 5 0 4 0; #X connect 6 0 5 1; #X connect 6 0 7 0; #X connect 7 0 4 1; #X restore 486 507 pd boid; #N canvas 213 30 514 364 boid 0; #X obj 100 24 gemhead; #X obj 99 201 translateXYZ; #X obj 192 162 unpack 0 0 0; #X obj 192 1 inlet; #X obj 100 155 alpha; #X obj 101 85 color 1 0.5 0 0.5; #N canvas 0 22 474 324 rand_color 0; #X obj 47 130 random 1000; #X obj 48 171 * 0.001; #X obj 131 130 random 1000; #X obj 132 171 * 0.001; #X obj 214 131 random 1000; #X obj 215 172 * 0.001; #X obj 46 83 t b b b; #X obj 48 256 outlet; #X obj 47 26 r init; #X obj 49 217 pack 0 0 0 0.5; #X connect 0 0 1 0; #X connect 1 0 9 0; #X connect 2 0 3 0; #X connect 3 0 9 1; #X connect 4 0 5 0; #X connect 5 0 9 2; #X connect 6 0 0 0; #X connect 6 1 2 0; #X connect 6 2 4 0; #X connect 8 0 6 0; #X connect 9 0 7 0; #X restore 214 58 pd rand_color; #X obj 231 85 t 1; #X obj 99 228 circle 0.05; #X connect 0 0 5 0; #X connect 1 0 8 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 1 0; #X connect 5 0 4 0; #X connect 6 0 5 1; #X connect 6 0 7 0; #X connect 7 0 4 1; #X restore 496 517 pd boid; #X obj 206 189 route 0 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; #N canvas 213 30 514 364 boid 0; #X obj 100 24 gemhead; #X obj 99 201 translateXYZ; #X obj 192 162 unpack 0 0 0; #X obj 192 1 inlet; #X obj 100 155 alpha; #X obj 101 85 color 1 0.5 0 0.5; #N canvas 0 22 474 324 rand_color 0; #X obj 47 130 random 1000; #X obj 48 171 * 0.001; #X obj 131 130 random 1000; #X obj 132 171 * 0.001; #X obj 214 131 random 1000; #X obj 215 172 * 0.001; #X obj 46 83 t b b b; #X obj 48 256 outlet; #X obj 47 26 r init; #X obj 49 217 pack 0 0 0 0.5; #X connect 0 0 1 0; #X connect 1 0 9 0; #X connect 2 0 3 0; #X connect 3 0 9 1; #X connect 4 0 5 0; #X connect 5 0 9 2; #X connect 6 0 0 0; #X connect 6 1 2 0; #X connect 6 2 4 0; #X connect 8 0 6 0; #X connect 9 0 7 0; #X restore 214 58 pd rand_color; #X obj 231 85 t 1; #X obj 99 228 circle 0.05; #X connect 0 0 5 0; #X connect 1 0 8 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 1 0; #X connect 5 0 4 0; #X connect 6 0 5 1; #X connect 6 0 7 0; #X connect 7 0 4 1; #X restore 506 527 pd boid; #N canvas 213 30 514 364 boid 0; #X obj 100 24 gemhead; #X obj 99 201 translateXYZ; #X obj 192 162 unpack 0 0 0; #X obj 192 1 inlet; #X obj 100 155 alpha; #X obj 101 85 color 1 0.5 0 0.5; #N canvas 0 22 474 324 rand_color 0; #X obj 47 130 random 1000; #X obj 48 171 * 0.001; #X obj 131 130 random 1000; #X obj 132 171 * 0.001; #X obj 214 131 random 1000; #X obj 215 172 * 0.001; #X obj 46 83 t b b b; #X obj 48 256 outlet; #X obj 47 26 r init; #X obj 49 217 pack 0 0 0 0.5; #X connect 0 0 1 0; #X connect 1 0 9 0; #X connect 2 0 3 0; #X connect 3 0 9 1; #X connect 4 0 5 0; #X connect 5 0 9 2; #X connect 6 0 0 0; #X connect 6 1 2 0; #X connect 6 2 4 0; #X connect 8 0 6 0; #X connect 9 0 7 0; #X restore 214 58 pd rand_color; #X obj 231 85 t 1; #X obj 99 228 circle 0.05; #X connect 0 0 5 0; #X connect 1 0 8 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 1 0; #X connect 5 0 4 0; #X connect 6 0 5 1; #X connect 6 0 7 0; #X connect 7 0 4 1; #X restore 516 537 pd boid; #N canvas 213 30 514 364 boid 0; #X obj 100 24 gemhead; #X obj 99 201 translateXYZ; #X obj 192 162 unpack 0 0 0; #X obj 192 1 inlet; #X obj 100 155 alpha; #X obj 101 85 color 1 0.5 0 0.5; #N canvas 0 22 474 324 rand_color 0; #X obj 47 130 random 1000; #X obj 48 171 * 0.001; #X obj 131 130 random 1000; #X obj 132 171 * 0.001; #X obj 214 131 random 1000; #X obj 215 172 * 0.001; #X obj 46 83 t b b b; #X obj 48 256 outlet; #X obj 47 26 r init; #X obj 49 217 pack 0 0 0 0.5; #X connect 0 0 1 0; #X connect 1 0 9 0; #X connect 2 0 3 0; #X connect 3 0 9 1; #X connect 4 0 5 0; #X connect 5 0 9 2; #X connect 6 0 0 0; #X connect 6 1 2 0; #X connect 6 2 4 0; #X connect 8 0 6 0; #X connect 9 0 7 0; #X restore 214 58 pd rand_color; #X obj 231 85 t 1; #X obj 99 228 circle 0.05; #X connect 0 0 5 0; #X connect 1 0 8 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 1 0; #X connect 5 0 4 0; #X connect 6 0 5 1; #X connect 6 0 7 0; #X connect 7 0 4 1; #X restore 526 547 pd boid; #N canvas 213 30 514 364 boid 0; #X obj 100 24 gemhead; #X obj 99 201 translateXYZ; #X obj 192 162 unpack 0 0 0; #X obj 192 1 inlet; #X obj 100 155 alpha; #X obj 101 85 color 1 0.5 0 0.5; #N canvas 0 22 474 324 rand_color 0; #X obj 47 130 random 1000; #X obj 48 171 * 0.001; #X obj 131 130 random 1000; #X obj 132 171 * 0.001; #X obj 214 131 random 1000; #X obj 215 172 * 0.001; #X obj 46 83 t b b b; #X obj 48 256 outlet; #X obj 47 26 r init; #X obj 49 217 pack 0 0 0 0.5; #X connect 0 0 1 0; #X connect 1 0 9 0; #X connect 2 0 3 0; #X connect 3 0 9 1; #X connect 4 0 5 0; #X connect 5 0 9 2; #X connect 6 0 0 0; #X connect 6 1 2 0; #X connect 6 2 4 0; #X connect 8 0 6 0; #X connect 9 0 7 0; #X restore 214 58 pd rand_color; #X obj 231 85 t 1; #X obj 99 228 circle 0.05; #X connect 0 0 5 0; #X connect 1 0 8 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 1 0; #X connect 5 0 4 0; #X connect 6 0 5 1; #X connect 6 0 7 0; #X connect 7 0 4 1; #X restore 536 557 pd boid; #N canvas 213 30 514 364 boid 0; #X obj 100 24 gemhead; #X obj 99 201 translateXYZ; #X obj 192 162 unpack 0 0 0; #X obj 192 1 inlet; #X obj 100 155 alpha; #X obj 101 85 color 1 0.5 0 0.5; #N canvas 0 22 474 324 rand_color 0; #X obj 47 130 random 1000; #X obj 48 171 * 0.001; #X obj 131 130 random 1000; #X obj 132 171 * 0.001; #X obj 214 131 random 1000; #X obj 215 172 * 0.001; #X obj 46 83 t b b b; #X obj 48 256 outlet; #X obj 47 26 r init; #X obj 49 217 pack 0 0 0 0.5; #X connect 0 0 1 0; #X connect 1 0 9 0; #X connect 2 0 3 0; #X connect 3 0 9 1; #X connect 4 0 5 0; #X connect 5 0 9 2; #X connect 6 0 0 0; #X connect 6 1 2 0; #X connect 6 2 4 0; #X connect 8 0 6 0; #X connect 9 0 7 0; #X restore 214 58 pd rand_color; #X obj 231 85 t 1; #X obj 99 228 circle 0.05; #X connect 0 0 5 0; #X connect 1 0 8 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 1 0; #X connect 5 0 4 0; #X connect 6 0 5 1; #X connect 6 0 7 0; #X connect 7 0 4 1; #X restore 546 567 pd boid; #N canvas 213 30 514 364 boid 0; #X obj 100 24 gemhead; #X obj 99 201 translateXYZ; #X obj 192 162 unpack 0 0 0; #X obj 192 1 inlet; #X obj 100 155 alpha; #X obj 101 85 color 1 0.5 0 0.5; #N canvas 0 22 474 324 rand_color 0; #X obj 47 130 random 1000; #X obj 48 171 * 0.001; #X obj 131 130 random 1000; #X obj 132 171 * 0.001; #X obj 214 131 random 1000; #X obj 215 172 * 0.001; #X obj 46 83 t b b b; #X obj 48 256 outlet; #X obj 47 26 r init; #X obj 49 217 pack 0 0 0 0.5; #X connect 0 0 1 0; #X connect 1 0 9 0; #X connect 2 0 3 0; #X connect 3 0 9 1; #X connect 4 0 5 0; #X connect 5 0 9 2; #X connect 6 0 0 0; #X connect 6 1 2 0; #X connect 6 2 4 0; #X connect 8 0 6 0; #X connect 9 0 7 0; #X restore 214 58 pd rand_color; #X obj 231 85 t 1; #X obj 99 228 circle 0.05; #X connect 0 0 5 0; #X connect 1 0 8 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 1 0; #X connect 5 0 4 0; #X connect 6 0 5 1; #X connect 6 0 7 0; #X connect 7 0 4 1; #X restore 556 577 pd boid; #N canvas 213 30 514 364 boid 0; #X obj 100 24 gemhead; #X obj 99 201 translateXYZ; #X obj 192 162 unpack 0 0 0; #X obj 192 1 inlet; #X obj 100 155 alpha; #X obj 101 85 color 1 0.5 0 0.5; #N canvas 0 22 474 324 rand_color 0; #X obj 47 130 random 1000; #X obj 48 171 * 0.001; #X obj 131 130 random 1000; #X obj 132 171 * 0.001; #X obj 214 131 random 1000; #X obj 215 172 * 0.001; #X obj 46 83 t b b b; #X obj 48 256 outlet; #X obj 47 26 r init; #X obj 49 217 pack 0 0 0 0.5; #X connect 0 0 1 0; #X connect 1 0 9 0; #X connect 2 0 3 0; #X connect 3 0 9 1; #X connect 4 0 5 0; #X connect 5 0 9 2; #X connect 6 0 0 0; #X connect 6 1 2 0; #X connect 6 2 4 0; #X connect 8 0 6 0; #X connect 9 0 7 0; #X restore 214 58 pd rand_color; #X obj 231 85 t 1; #X obj 99 228 circle 0.05; #X connect 0 0 5 0; #X connect 1 0 8 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 1 0; #X connect 5 0 4 0; #X connect 6 0 5 1; #X connect 6 0 7 0; #X connect 7 0 4 1; #X restore 566 587 pd boid; #N canvas 213 30 514 364 boid 0; #X obj 100 24 gemhead; #X obj 99 201 translateXYZ; #X obj 192 162 unpack 0 0 0; #X obj 192 1 inlet; #X obj 100 155 alpha; #X obj 101 85 color 1 0.5 0 0.5; #N canvas 0 22 474 324 rand_color 0; #X obj 47 130 random 1000; #X obj 48 171 * 0.001; #X obj 131 130 random 1000; #X obj 132 171 * 0.001; #X obj 214 131 random 1000; #X obj 215 172 * 0.001; #X obj 46 83 t b b b; #X obj 48 256 outlet; #X obj 47 26 r init; #X obj 49 217 pack 0 0 0 0.5; #X connect 0 0 1 0; #X connect 1 0 9 0; #X connect 2 0 3 0; #X connect 3 0 9 1; #X connect 4 0 5 0; #X connect 5 0 9 2; #X connect 6 0 0 0; #X connect 6 1 2 0; #X connect 6 2 4 0; #X connect 8 0 6 0; #X connect 9 0 7 0; #X restore 214 58 pd rand_color; #X obj 231 85 t 1; #X obj 99 228 circle 0.05; #X connect 0 0 5 0; #X connect 1 0 8 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 1 0; #X connect 5 0 4 0; #X connect 6 0 5 1; #X connect 6 0 7 0; #X connect 7 0 4 1; #X restore 576 597 pd boid; #N canvas 213 30 514 364 boid 0; #X obj 100 24 gemhead; #X obj 99 201 translateXYZ; #X obj 192 162 unpack 0 0 0; #X obj 192 1 inlet; #X obj 100 155 alpha; #X obj 101 85 color 1 0.5 0 0.5; #N canvas 0 22 474 324 rand_color 0; #X obj 47 130 random 1000; #X obj 48 171 * 0.001; #X obj 131 130 random 1000; #X obj 132 171 * 0.001; #X obj 214 131 random 1000; #X obj 215 172 * 0.001; #X obj 46 83 t b b b; #X obj 48 256 outlet; #X obj 47 26 r init; #X obj 49 217 pack 0 0 0 0.5; #X connect 0 0 1 0; #X connect 1 0 9 0; #X connect 2 0 3 0; #X connect 3 0 9 1; #X connect 4 0 5 0; #X connect 5 0 9 2; #X connect 6 0 0 0; #X connect 6 1 2 0; #X connect 6 2 4 0; #X connect 8 0 6 0; #X connect 9 0 7 0; #X restore 214 58 pd rand_color; #X obj 231 85 t 1; #X obj 99 228 circle 0.05; #X connect 0 0 5 0; #X connect 1 0 8 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 1 0; #X connect 5 0 4 0; #X connect 6 0 5 1; #X connect 6 0 7 0; #X connect 7 0 4 1; #X restore 586 607 pd boid; #N canvas 213 30 514 364 boid 0; #X obj 100 24 gemhead; #X obj 99 201 translateXYZ; #X obj 192 162 unpack 0 0 0; #X obj 192 1 inlet; #X obj 100 155 alpha; #X obj 101 85 color 1 0.5 0 0.5; #N canvas 0 22 474 324 rand_color 0; #X obj 47 130 random 1000; #X obj 48 171 * 0.001; #X obj 131 130 random 1000; #X obj 132 171 * 0.001; #X obj 214 131 random 1000; #X obj 215 172 * 0.001; #X obj 46 83 t b b b; #X obj 48 256 outlet; #X obj 47 26 r init; #X obj 49 217 pack 0 0 0 0.5; #X connect 0 0 1 0; #X connect 1 0 9 0; #X connect 2 0 3 0; #X connect 3 0 9 1; #X connect 4 0 5 0; #X connect 5 0 9 2; #X connect 6 0 0 0; #X connect 6 1 2 0; #X connect 6 2 4 0; #X connect 8 0 6 0; #X connect 9 0 7 0; #X restore 214 58 pd rand_color; #X obj 231 85 t 1; #X obj 99 228 circle 0.05; #X connect 0 0 5 0; #X connect 1 0 8 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 1 0; #X connect 5 0 4 0; #X connect 6 0 5 1; #X connect 6 0 7 0; #X connect 7 0 4 1; #X restore 596 617 pd boid; #X connect 0 0 1 0; #X connect 1 0 0 0; #X connect 2 0 4 0; #X connect 3 0 43 0; #X connect 4 0 10 0; #X connect 4 0 43 0; #X connect 5 0 15 0; #X connect 5 0 15 2; #X connect 6 0 15 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 15 0 16 0; #X connect 15 0 17 0; #X connect 16 0 7 0; #X connect 43 0 49 0; #X connect 49 0 18 0; #X connect 49 1 19 0; #X connect 49 2 20 0; #X connect 49 3 21 0; #X connect 49 4 22 0; #X connect 49 5 23 0; #X connect 49 6 24 0; #X connect 49 7 25 0; #X connect 49 8 26 0; #X connect 49 9 27 0; #X connect 49 10 28 0; #X connect 49 11 29 0; #X connect 49 12 30 0; #X connect 49 13 31 0; #X connect 49 14 32 0; #X connect 49 15 33 0; #X connect 49 16 34 0; #X connect 49 17 35 0; #X connect 49 18 36 0; #X connect 49 19 37 0; #X connect 49 20 38 0; #X connect 49 21 39 0; #X connect 49 22 40 0; #X connect 49 23 41 0; #X connect 49 24 42 0; #X connect 49 25 44 0; #X connect 49 26 45 0; #X connect 49 27 46 0; #X connect 49 28 47 0; #X connect 49 29 48 0; #X connect 49 30 50 0; #X connect 49 31 51 0; #X connect 49 32 52 0; #X connect 49 33 53 0; #X connect 49 34 54 0; #X connect 49 35 55 0; #X connect 49 36 56 0; #X connect 49 37 57 0; #X connect 49 38 58 0; #X connect 49 39 59 0; #X restore 57 430 pd gem_example; #X msg 266 592 flyrect \$1 \$2 \$3 \$4 \$5 \$6; #X text 392 575 bounding box (walls) in which to fly (l/t/r/b/f/b) ; #X text 389 614 point to which boids are attracted (x/y/z); #X obj 266 574 pack 0 0 0 0 0 0; #X floatatom 423 556 5 0 0 0 - - -; #X floatatom 462 556 5 0 0 0 - - -; #X obj -150 488 print boids3d; #X msg 266 652 attractpt \$1 \$2 \$3; #X obj 266 632 pack 0 0 0; #X floatatom 345 615 5 0 0 0 - - -; #X text -190 105 float/2d/3d adaptation 08/2005 by a. sier / jasch ; #N canvas 754 114 178 480 init 0; #X obj 34 21 loadbang; #X obj 94 21 r reset; #X msg 15 78 \; neighbors 4; #X msg 15 168 \; center 1; #X msg 15 228 \; match 1; #X msg 15 318 \; edgedist 1; #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 258 \; avoid 2; #X msg 15 288 \; repel 2; #X msg 15 378 \; inertia 8; #X msg 15 138 \; minspeed 1; #X msg 15 108 \; maxspeed 3; #X msg 15 198 \; attract 3; #X msg 15 408 \; accel 2; #X msg 15 438 \; prefdist 1.5; #X connect 0 0 7 0; #X connect 1 0 7 0; #X connect 7 0 2 0; #X connect 7 0 13 0; #X connect 7 0 12 0; #X connect 7 0 3 0; #X connect 7 0 14 0; #X connect 7 0 4 0; #X connect 7 0 9 0; #X connect 7 0 10 0; #X connect 7 0 6 0; #X connect 7 0 11 0; #X connect 7 0 15 0; #X connect 7 0 16 0; #X connect 8 0 7 0; #X restore 57 411 pd init; #N canvas 67 162 494 344 META 0; #X text 12 165 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan Wilkes for Pd version 0.42.; #X text 12 145 AUTHOR Eric L. Singer; #X text 12 5 KEYWORDS control; #X text 12 45 DESCRIPTION bird flight and animal flock simulator; #X text 12 65 INLET_0 bang mode dump reset number neighbors maxspeed minspeed center attract match avoid repel edgedist speed inertia accel prefdist flyrect attractpt; #X text 12 105 OUTLET_0 list; #X text 12 125 OUTLET_1 list; #X text 12 25 LICENSE GPL v2; #X restore 710 674 pd META; #X obj -151 438 boids3d 16 0; #X text -191 208 Boids takes an integer argument which is the number of boids. Each time Boids receives a bang \, it calculates and outputs the new positions of the boids. The output consists of the coordinates for each boid \, the number and type depending on the mode.; #X obj 604 10 declare -lib cyclone Gem; #X connect 0 0 48 0; #X connect 1 0 47 0; #X connect 2 0 1 0; #X connect 3 0 4 0; #X connect 4 0 47 0; #X connect 5 0 6 0; #X connect 6 0 47 0; #X connect 7 0 8 0; #X connect 8 0 47 0; #X connect 9 0 10 0; #X connect 10 0 47 0; #X connect 11 0 12 0; #X connect 12 0 47 0; #X connect 13 0 14 0; #X connect 14 0 47 0; #X connect 15 0 81 0; #X connect 16 0 17 0; #X connect 17 0 47 0; #X connect 18 0 19 0; #X connect 19 0 47 0; #X connect 20 0 21 0; #X connect 21 0 47 0; #X connect 22 0 23 0; #X connect 23 0 47 0; #X connect 24 0 25 0; #X connect 25 0 47 0; #X connect 26 0 27 0; #X connect 27 0 47 0; #X connect 28 0 48 0; #X connect 35 0 71 0; #X connect 36 0 71 1; #X connect 37 0 71 2; #X connect 38 0 71 3; #X connect 39 0 76 0; #X connect 40 0 76 1; #X connect 41 0 42 0; #X connect 42 0 47 0; #X connect 44 0 45 0; #X connect 45 0 48 0; #X connect 66 0 81 0; #X connect 68 0 47 0; #X connect 71 0 68 0; #X connect 72 0 71 4; #X connect 73 0 71 5; #X connect 75 0 47 0; #X connect 76 0 75 0; #X connect 77 0 76 2; #X connect 81 0 74 0; #X connect 81 1 64 0;