#N canvas 1044 250 764 482 10;
#X declare -lib Gem;
#N struct \$0-xy-pad-knob-1 float x0 float y0 float id;
#X obj 27 380 hradio 15 1 0 5 empty empty empty 0 -8 0 10 #fcfcfc #000000 #000000 0;
#X floatatom 245 192 5 0 0 0 - - - 0;
#N canvas 4 106 187 219 fps 0;
#X obj 22 62 realtime;
#X obj 22 41 t b b;
#X obj 22 19 gemhead;
#X obj 22 170 outlet;
#X msg 22 84 1000 \$1;
#X obj 22 105 /;
#X obj 22 126 + 0.5;
#X obj 22 147 i;
#X connect 0 0 4 0;
#X connect 1 0 0 0;
#X connect 1 1 0 1;
#X connect 2 0 1 0;
#X connect 4 0 5 0;
#X connect 5 0 6 0;
#X connect 6 0 7 0;
#X connect 7 0 3 0;
#X restore 245 172 pd fps;
#N canvas 819 114 1183 666 shaders_PM 0;
#X obj 468 34 gemhead;
#X obj 468 57 route gem_state;
#X obj 468 79 route 1 0;
#X obj 24 537 translateXYZ 0 0 -4;
#X obj 24 635 square 4;
#X obj 53 234 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000;
#X obj 506 528 translateXYZ 0 0 -4;
#X obj 506 636 square 4;
#X obj 261 537 translateXYZ 0 0 -4;
#X obj 292 231 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000;
#X obj 119 508 s texture_mass;
#X obj 359 504 s texture_link;
#X obj 601 500 s texture_mass2;
#X obj 321 229 r shader_link;
#X obj 271 307 s init_shader_link;
#X obj 261 638 square 4;
#X obj 365 34 inlet;
#X obj 24 201 gemhead 2;
#X obj 261 185 gemhead 11;
#X obj 506 236 gemhead 21;
#X obj 410 36 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000;
#X obj 431 123 s init_shader_link;
#X obj 117 233 r shader_mass;
#X obj 37 302 s init_shader_mass;
#X obj 404 145 s init_shader_mass;
#X obj 575 565 r texture_mass;
#X obj 66 281 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000;
#X obj 301 284 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000;
#X obj 404 79 delay 500;
#X obj 232 39 gemhead 2;
#X msg 271 106 0;
#X obj 271 82 loadbang;
#X msg 232 59 20;
#X obj 232 80 until;
#X msg 794 589 init \$1;
#X floatatom 794 567 5 0 1 0 - - - 0;
#X obj 752 483 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000;
#X msg 794 545 1;
#X msg 751 209 gravite \$1;
#X floatatom 751 165 5 0 0 0 - - - 0;
#X floatatom 810 166 5 0 0 0 - - - 0;
#X msg 810 186 D \$1;
#X msg 860 188 K1 \$1;
#X floatatom 860 165 5 0 0 0 - - - 0;
#X obj 751 187 / 100;
#X obj 751 231 t a;
#X obj 751 426 s shader_link;
#X obj 724 47 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000;
#X obj 724 27 r init_shader_link;
#X msg 860 138 0.05;
#X msg 751 139 -0.0025;
#X msg 810 140 0.004;
#X obj 832 543 delay 1000;
#X msg 832 566 0;
#X obj 752 643 s shader_mass;
#X obj 752 454 r init_shader_mass;
#X msg 724 356 init \$1;
#X floatatom 724 338 5 0 1 0 - - - 0;
#X msg 724 316 1;
#X obj 773 292 delay 1000;
#X msg 762 337 0;
#X msg 792 359 N \$1;
#X msg 792 335 0.01;
#X msg 828 359 0;
#X obj 828 335 delay 100;
#X obj 24 588 pix_texture \; rectangle 1 \; quality 0;
#X obj 261 589 pix_texture \; rectangle 1 \; quality 0;
#X obj 506 588 pix_texture \; rectangle 1 \; quality 0;
#X obj 24 395 gemframebuffer \; texunit 1 \; rectangle 1 \; format RGB32 \; type BYTE \; dimen 128 128;
#X obj 261 395 gemframebuffer \; texunit 3 \; rectangle 1 \; format RGB32 \; type BYTE \; dimen 128 128;
#X obj 506 395 gemframebuffer \; texunit 2 \; rectangle 1 \; format RGB32 \; type BYTE \; dimen 128 128;
#X obj 24 257 glsl shader/mass;
#X obj 37 281 t b;
#X obj 261 256 glsl shader/link;
#X obj 272 284 t b;
#X obj 242 133 t a a a;
#X obj 794 515 t b b;
#X msg 752 616 texture_link 3 \, texture_mass_old 2;
#X obj 752 513 t b b;
#X obj 404 102 t b b;
#X obj 365 58 t b b b;
#X msg 805 400 texture_mass_old 2 \, texture_mass 1;
#X obj 724 264 t b b b, f 14;
#X obj 773 312 t b b b;
#X obj 724 65 t b b b b;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 2 0 80 0;
#X connect 3 0 65 0;
#X connect 5 0 71 0;
#X connect 6 0 67 0;
#X connect 8 0 66 0;
#X connect 9 0 73 0;
#X connect 13 0 73 1;
#X connect 16 0 80 0;
#X connect 17 0 71 0;
#X connect 18 0 73 0;
#X connect 19 0 70 0;
#X connect 20 0 80 0;
#X connect 22 0 71 1;
#X connect 25 0 67 1;
#X connect 26 0 23 0;
#X connect 27 0 14 0;
#X connect 28 0 79 0;
#X connect 29 0 32 0;
#X connect 30 0 75 0;
#X connect 31 0 30 0;
#X connect 32 0 33 0;
#X connect 33 0 75 0;
#X connect 34 0 54 0;
#X connect 35 0 34 0;
#X connect 36 0 78 0;
#X connect 37 0 35 0;
#X connect 38 0 45 0;
#X connect 39 0 44 0;
#X connect 40 0 41 0;
#X connect 41 0 45 0;
#X connect 42 0 45 0;
#X connect 43 0 42 0;
#X connect 44 0 38 0;
#X connect 45 0 46 0;
#X connect 47 0 84 0;
#X connect 48 0 47 0;
#X connect 49 0 43 0;
#X connect 50 0 39 0;
#X connect 51 0 40 0;
#X connect 52 0 53 0;
#X connect 53 0 35 0;
#X connect 55 0 36 0;
#X connect 56 0 46 0;
#X connect 57 0 56 0;
#X connect 58 0 57 0;
#X connect 59 0 83 0;
#X connect 60 0 57 0;
#X connect 61 0 46 0;
#X connect 62 0 61 0;
#X connect 63 0 61 0;
#X connect 64 0 63 0;
#X connect 65 0 4 0;
#X connect 66 0 15 0;
#X connect 67 0 7 0;
#X connect 68 0 3 0;
#X connect 68 1 10 0;
#X connect 68 1 65 1;
#X connect 69 0 8 0;
#X connect 69 1 11 0;
#X connect 69 1 66 1;
#X connect 70 0 6 0;
#X connect 70 1 12 0;
#X connect 71 0 68 0;
#X connect 71 1 72 0;
#X connect 72 0 23 0;
#X connect 73 0 69 0;
#X connect 73 1 74 0;
#X connect 74 0 14 0;
#X connect 75 0 19 0;
#X connect 75 1 18 0;
#X connect 75 2 17 0;
#X connect 76 0 37 0;
#X connect 76 1 52 0;
#X connect 77 0 54 0;
#X connect 78 0 77 0;
#X connect 78 1 76 0;
#X connect 79 0 24 0;
#X connect 79 1 21 0;
#X connect 80 0 5 0;
#X connect 80 1 9 0;
#X connect 80 2 28 0;
#X connect 81 0 46 0;
#X connect 82 0 58 0;
#X connect 82 1 59 0;
#X connect 82 2 81 0;
#X connect 83 0 60 0;
#X connect 83 1 62 0;
#X connect 83 2 64 0;
#X connect 84 0 82 0;
#X connect 84 1 50 0;
#X connect 84 2 51 0;
#X connect 84 3 49 0;
#X restore 27 323 pd shaders_PM _________________;
#N canvas 267 495 450 300 config 0;
#X msg 16 75 W \$1;
#X floatatom 225 101 5 0 0 0 - - - 0;
#X msg 225 120 f \$1;
#X obj 133 155 t a;
#X msg 133 83 N \$1;
#X text 141 101 bruit;
#X obj 16 53 / 11000;
#X obj 225 78 + 5;
#X obj 225 55 * 5;
#X obj 133 61 / 5000;
#X msg 338 120 t \$1;
#X obj 338 31 gemhead 77;
#X obj 338 56 t b;
#X obj 338 79 f;
#X obj 338 99 + 0.3;
#X obj 338 141 s shader_link;
#X obj 133 181 s shader_link;
#X obj 16 29 r oscillation1;
#X obj 133 31 r qqt_noise;
#X obj 225 31 r force_wind;
#X connect 0 0 3 0;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 3 0 16 0;
#X connect 4 0 3 0;
#X connect 6 0 0 0;
#X connect 7 0 1 0;
#X connect 8 0 7 0;
#X connect 9 0 4 0;
#X connect 10 0 15 0;
#X connect 11 0 12 0;
#X connect 12 0 13 0;
#X connect 13 0 14 0;
#X connect 14 0 13 1;
#X connect 14 0 10 0;
#X connect 17 0 6 0;
#X connect 18 0 9 0;
#X connect 19 0 8 0;
#X restore 27 361 pd config _____________________;
#N canvas 0 0 450 300 render 0;
#X obj 43 137 pix_texture;
#X obj 43 181 square 4;
#X obj 43 115 gemhead 66;
#X obj 241 120 != 0;
#X obj 210 119 == 0;
#X obj 133 58 r texture_link;
#X obj 146 77 r texture_interpol;
#X obj 210 146 s aff_drapeau;
#X obj 120 39 r texture_mass;
#X msg 43 94 0;
#X obj 43 73 loadbang;
#N canvas 0 0 656 297 spigot4 0;
#X obj 40 21 inlet;
#X obj 458 22 inlet;
#X obj 40 179 outlet;
#X obj 113 24 inlet;
#X obj 112 91 spigot 0;
#X obj 196 24 inlet;
#X obj 195 91 spigot 0;
#X obj 86 68 == 1;
#X obj 159 71 == 2;
#X obj 240 71 == 3;
#X obj 40 88 spigot 0;
#X obj 283 29 inlet;
#X obj 282 96 spigot 0;
#X obj 327 76 == 4;
#X obj 361 32 inlet;
#X obj 360 99 spigot 0;
#X obj 405 79 == 5;
#X connect 0 0 10 0;
#X connect 1 0 7 0;
#X connect 1 0 8 0;
#X connect 1 0 9 0;
#X connect 1 0 13 0;
#X connect 1 0 16 0;
#X connect 3 0 4 0;
#X connect 4 0 2 0;
#X connect 5 0 6 0;
#X connect 6 0 2 0;
#X connect 7 0 10 1;
#X connect 8 0 4 1;
#X connect 9 0 6 1;
#X connect 10 0 2 0;
#X connect 11 0 12 0;
#X connect 12 0 2 0;
#X connect 13 0 12 1;
#X connect 14 0 15 0;
#X connect 15 0 2 0;
#X connect 16 0 15 1;
#X restore 120 115 pd spigot4;
#X obj 160 96 r texture_normal;
#X obj 43 160 translateXYZ 0 0 -40;
#X obj 240 27 f;
#X obj 238 5 inlet;
#X connect 0 0 13 0;
#X connect 2 0 0 0;
#X connect 3 0 2 0;
#X connect 4 0 7 0;
#X connect 5 0 11 1;
#X connect 6 0 11 2;
#X connect 8 0 11 0;
#X connect 9 0 2 0;
#X connect 10 0 9 0;
#X connect 11 0 0 1;
#X connect 12 0 11 3;
#X connect 13 0 1 0;
#X connect 14 0 3 0;
#X connect 14 0 4 0;
#X connect 14 0 11 5;
#X connect 15 0 14 0;
#X restore 27 398 pd render _____________________;
#X text 288 6 Made by Cyrille Henry 2008 10 24;
#N canvas 1055 421 812 549 shader_render 0;
#X obj 67 405 translateXYZ 0 0 -4;
#X obj 67 502 square 4;
#X obj 315 116 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1;
#X obj 163 338 s texture_interpol;
#X obj 315 96 r aff_drapeau;
#X obj 67 102 gemhead 31;
#X obj 315 135 gemhead 51;
#X obj 410 25 inlet;
#X obj 315 461 mesh_square 92 64;
#X obj 315 156 alpha;
#X obj 315 316 scaleXYZ 15 15 15;
#X obj 315 286 translateXYZ 0 0.55 -8;
#X msg 521 258 draw line;
#X msg 521 238 draw default;
#X msg 522 279 draw point;
#X floatatom 485 203 5 0 0 0 - - - 0;
#X obj 485 28 inlet;
#X obj 637 140 loadbang;
#X msg 637 162 15;
#X obj 637 184 s \$0-scale;
#X obj 67 443 pix_texture \; rectangle 1 \; quality 0;
#X obj 315 419 pix_texture \; quality 0;
#X obj 67 256 gemframebuffer \; rectangle 1 \; type BYTE \; format RGB32 \; dim 256 256;
#X obj 67 175 glsl shader/interpol \; texture_mass 1;
#X obj 315 208 glsl shader/fetching2 \; texture 4;
#X connect 0 0 20 0;
#X connect 2 0 6 0;
#X connect 4 0 2 0;
#X connect 5 0 23 0;
#X connect 6 0 9 0;
#X connect 9 0 24 0;
#X connect 10 0 21 0;
#X connect 11 0 10 0;
#X connect 12 0 8 0;
#X connect 13 0 8 0;
#X connect 14 0 8 0;
#X connect 15 0 10 1;
#X connect 15 0 10 2;
#X connect 15 0 10 3;
#X connect 16 0 15 0;
#X connect 17 0 18 0;
#X connect 18 0 19 0;
#X connect 20 0 1 0;
#X connect 21 0 8 0;
#X connect 22 0 0 0;
#X connect 22 1 3 0;
#X connect 22 1 20 1;
#X connect 22 1 21 1;
#X connect 23 0 22 0;
#X connect 24 0 11 0;
#X restore 27 304 pd shader_render ______________;
#X text 12 6 "Potential Flag" \, by Samuel Bianchini;
#X floatatom 606 304 5 0 0 0 - - - 0;
#X obj 606 324 * 10;
#X floatatom 210 282 5 0 0 0 scale-> \$0-scale - 0;
#X obj 6 325 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000;
#N canvas 290 239 395 502 shader_normal 0;
#X obj 51 316 translateXYZ 0 0 -4;
#X obj 51 426 square 4;
#X obj 157 292 s texture_normal;
#X obj 51 39 gemhead 32;
#X obj 51 347 pix_texture \; rectangle 1 \; quality 1;
#X obj 51 203 gemframebuffer \; texunit 4 \; rectangle 1 \; format RGB32 \; type BYTE \; dimen 128 128;
#X obj 51 112 glsl shader/normal \; texture_mass 1;
#X connect 0 0 4 0;
#X connect 3 0 6 0;
#X connect 4 0 1 0;
#X connect 5 0 0 0;
#X connect 5 1 2 0;
#X connect 5 1 4 1;
#X connect 6 0 5 0;
#X restore 27 342 pd shader_normal ______________;
#N canvas 68 153 767 700 \$0-pad 0;
#X msg 158 309 clear;
#N canvas 6 50 590 367 clear-all 0;
#X obj 89 46 inlet;
#X obj 89 122 s pd-\$0-work;
#X msg 89 99 clear;
#X obj 89 72 t b;
#X connect 0 0 3 0;
#X connect 2 0 1 0;
#X connect 3 0 2 0;
#X restore 158 331 pd clear-all;
#X obj 92 646 outlet;
#X obj 72 171 loadbang;
#X obj 191 411 metro 50;
#N canvas 581 163 695 660 pointer-parser 0;
#X obj 129 165 pointer;
#X text 276 46 from metro;
#X obj 282 346 t b f;
#X obj 117 49 inlet;
#X obj 237 48 inlet;
#X obj 129 541 outlet;
#X obj 129 398 pack 0 0;
#X obj 129 193 get \$0-xy-pad-knob-1 x0 y0;
#X obj 129 320 change -1;
#X obj 282 325 change -1;
#X obj 129 238 / 90;
#X obj 282 236 / 90;
#X obj 129 420 unpack 0 0;
#X obj 129 442 * 2;
#X obj 129 464 - 1;
#X obj 129 516 pack;
#X obj 169 442 * 2;
#X obj 169 464 - 1;
#X obj 384 202 set \$0-xy-pad-knob-1 x0 y0;
#X obj 384 43 inlet set;
#X obj 384 65 unpack;
#X text 432 67 -1..+1;
#X obj 384 112 + 1;
#X obj 384 134 / 2;
#X obj 384 156 * 90;
#X obj 424 112 + 1;
#X obj 424 134 / 2;
#X floatatom 173 241 5 0 0 0 - - - 0;
#X obj 424 156 * 90;
#X connect 0 0 18 2;
#X connect 0 0 7 0;
#X connect 2 0 6 0;
#X connect 2 1 6 1;
#X connect 3 0 0 0;
#X connect 4 0 0 0;
#X connect 6 0 12 0;
#X connect 7 0 10 0;
#X connect 7 0 27 0;
#X connect 7 1 11 0;
#X connect 8 0 6 0;
#X connect 9 0 2 0;
#X connect 10 0 8 0;
#X connect 11 0 9 0;
#X connect 12 0 13 0;
#X connect 12 1 16 0;
#X connect 13 0 14 0;
#X connect 14 0 15 0;
#X connect 15 0 5 0;
#X connect 16 0 17 0;
#X connect 17 0 15 1;
#X connect 19 0 20 0;
#X connect 20 0 22 0;
#X connect 20 1 25 0;
#X connect 22 0 23 0;
#X connect 23 0 24 0;
#X connect 24 0 18 0;
#X connect 25 0 26 0;
#X connect 26 0 28 0;
#X connect 28 0 18 1;
#X restore 72 448 pd pointer-parser;
#N canvas 419 563 751 371 add-controller 0;
#X msg 520 189 traverse \$1 \, bang;
#X obj 520 216 pointer;
#X obj 405 322 outlet;
#X obj 405 21 inlet;
#X obj 405 50 t f b;
#X obj 520 132 symbol pd-\$0-work;
#X obj 405 285 append \$0-xy-pad-knob-1 x0 y0 id;
#X obj 23 35 struct \$0-xy-pad-knob-1 float x0 float y0 float id;
#X obj 22 81 filledpolygon id 999 1 x0(0:90)(0:90) y0(0:90)(0:90) x0(0:90)(10:100) y0(0:90)(0:90) x0(0:90)(10:100) y0(0:90)(10:100) x0(0:90)(0:90) y0(0:90)(10:100);
#X msg 405 261 45 45 \$1;
#X connect 0 0 1 0;
#X connect 1 0 6 3;
#X connect 3 0 4 0;
#X connect 4 0 9 0;
#X connect 4 1 5 0;
#X connect 5 0 0 0;
#X connect 6 0 2 0;
#X connect 9 0 6 0;
#X restore 72 379 pd add-controller;
#X obj 192 391 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1;
#X msg 193 370 1;
#X obj 72 303 t f b b;
#X text 111 233 5/10 red;
#X text 111 248 3/10 green;
#X text 111 263 2/10 blue;
#X text 522 76 (c) 2010 Thomas Musil;
#X text 521 58 (c) -2010 Frank Barknecht;
#X msg 72 233 900;
#X obj 162 646 outlet;
#X text 486 42 based on: xy-pad;
#N canvas 44 366 450 300 xy2rphi 0;
#X obj 46 35 inlet x y;
#X obj 46 272 outlet r;
#X obj 136 266 outlet phi;
#X text 244 77 r=sqrt(x^2+y^2);
#X text 246 97 phi=atan2(y \, x);
#X obj 102 106 t f f f;
#X obj 102 129 *;
#X obj 46 169 +;
#X obj 46 106 t f f f;
#X obj 46 129 *;
#X obj 46 201 sqrt;
#X obj 136 157 pack;
#X obj 136 196 atan2;
#X msg 136 177 \$2 \$1;
#X obj 46 61 unpack 0 0;
#X text 147 282 in rad;
#X connect 0 0 14 0;
#X connect 5 0 6 0;
#X connect 5 1 6 1;
#X connect 5 2 11 1;
#X connect 6 0 7 1;
#X connect 7 0 10 0;
#X connect 8 0 9 0;
#X connect 8 1 9 1;
#X connect 8 2 11 0;
#X connect 9 0 7 0;
#X connect 10 0 1 0;
#X connect 11 0 13 0;
#X connect 12 0 2 0;
#X connect 13 0 12 0;
#X connect 14 0 8 0;
#X connect 14 1 5 0;
#X restore 394 485 pd xy2rphi;
#X obj 92 530 t l l;
#X obj 92 552 unpack 0 0;
#X obj 387 102 inlet r;
#X obj 456 103 inlet phi;
#X obj 444 333 t f f;
#X obj 444 357 cos;
#X obj 387 354 t f f;
#X obj 387 390 * 1;
#X obj 417 389 * 0;
#X obj 387 277 unpack 0 0;
#X obj 387 254 pack;
#X obj 456 225 t b f;
#X obj 471 356 sin;
#X obj 387 412 pack;
#X obj 387 204 t f;
#X obj 387 226 clip 0 1;
#X obj 304 74 cnv 10 12 12 empty empty empty 20 12 0 14 #606060 #404040 0;
#N canvas 493 264 450 300 \$0-work 0;
#X scalar \$0-xy-pad-knob-1 45 45 900 \;;
#X coords 0 100 100 0 100 100 1;
#X restore 260 30 pd \$0-work;
#X obj 451 532 wrap;
#X obj 72 193 t b b;
#X obj 608 163 atan2;
#X msg 608 138 1 0;
#X obj 608 185 * 4;
#X obj 608 207 t f f;
#X obj 378 612 s \$0-force;
#X obj 451 632 s \$0-direction;
#X msg 451 554 set \$1;
#X msg 378 564 set \$1;
#X obj 451 507 / 6.28;
#X obj 444 309 * -6.28;
#X obj 394 507 t f f;
#X obj 337 537 s force_wind;
#X obj 160 611 * -1;
#X connect 0 0 1 0;
#X connect 3 0 38 0;
#X connect 4 0 5 1;
#X connect 5 0 19 0;
#X connect 6 0 5 0;
#X connect 7 0 4 0;
#X connect 8 0 7 0;
#X connect 9 0 6 0;
#X connect 9 1 8 0;
#X connect 9 2 0 0;
#X connect 15 0 9 0;
#X connect 18 0 49 0;
#X connect 18 1 47 0;
#X connect 19 0 20 0;
#X connect 19 1 18 0;
#X connect 20 0 2 0;
#X connect 20 1 51 0;
#X connect 21 0 33 0;
#X connect 22 0 30 0;
#X connect 23 0 24 0;
#X connect 23 1 31 0;
#X connect 24 0 26 1;
#X connect 25 0 26 0;
#X connect 25 1 27 0;
#X connect 26 0 32 0;
#X connect 27 0 32 1;
#X connect 28 0 25 0;
#X connect 28 1 48 0;
#X connect 29 0 28 0;
#X connect 30 0 29 0;
#X connect 30 1 29 1;
#X connect 31 0 27 1;
#X connect 32 0 5 2;
#X connect 33 0 34 0;
#X connect 34 0 29 0;
#X connect 37 0 45 0;
#X connect 38 0 15 0;
#X connect 38 1 40 0;
#X connect 39 0 41 0;
#X connect 40 0 39 0;
#X connect 41 0 42 0;
#X connect 42 0 48 1;
#X connect 42 1 47 1;
#X connect 45 0 44 0;
#X connect 46 0 43 0;
#X connect 47 0 37 0;
#X connect 48 0 23 0;
#X connect 49 0 50 0;
#X connect 49 1 46 0;
#X connect 51 0 16 0;
#X coords 0 -1 1 1 100 100 2 260 30;
#X restore 445 290 pd \$0-pad;
#X obj 445 151 vsl 15 128 0 1 0 0 empty \$0-force force 0 -9 0 10 #fcfcfc #000000 #000000 0 1;
#X obj 538 152 vsl 15 128 0 1 0 0 empty \$0-direction direction 0 -9 0 10 #fcfcfc #000000 #000000 0 1;
#N canvas 424 571 337 368 wind-control. 0;
#X obj 41 82 pack f f;
#X msg 41 104 wind \$1 \$2;
#X obj 41 126 s shader_link;
#X obj 41 30 inlet;
#X obj 105 32 inlet;
#X obj 181 304 s oscillation1;
#X obj 41 58 / 11000;
#X obj 105 58 / 11000;
#X obj 181 187 *;
#X obj 181 164 t f f;
#X obj 181 212 +;
#X obj 181 236 sqrt;
#X obj 231 187 *;
#X obj 231 164 t f f;
#X obj 181 259 * 600;
#X obj 181 281 min 300;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 3 0 6 0;
#X connect 3 0 9 0;
#X connect 4 0 7 0;
#X connect 4 0 13 0;
#X connect 6 0 0 0;
#X connect 7 0 0 1;
#X connect 8 0 10 0;
#X connect 9 0 8 0;
#X connect 9 1 8 1;
#X connect 10 0 11 0;
#X connect 11 0 14 0;
#X connect 12 0 10 1;
#X connect 13 0 12 0;
#X connect 13 1 12 1;
#X connect 14 0 15 0;
#X connect 15 0 5 0;
#X restore 445 397 pd wind-control.;
#X text 28 20 Simple version for Gem examples;
#X text 29 34 Did work under Linux \, with Nvidia driver. I don't know on other OS/hardware.;
#X text 29 72 This patch is quite huge. the GPU compute the position of 64x92 masses \, and 64x92x12 links at 50x20 Hz. (about 7e+07 links/sec \, so about 100 time faster than what is currently possible with MSD on a CPU) (My GPU is old \, this patch performs 10 to 50 times faster on a good GPU);
#X obj 606 346 s qqt_noise;
#X obj 654 13 declare -lib Gem;
#X obj 47 214 gemwin 30 \; dimen 800 600 \; perspec -1 1 -1 1 10 100 \; FSAA 5;
#N canvas 341 104 682 322 control 0;
#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 #fcfcfc #000000 #000000 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 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 msg 441 219 color 0.2 0.3 0.5;
#X msg 443 257 dimen 1024 768;
#X obj 318 255 t a;
#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 7 0;
#X connect 6 0 7 0;
#X connect 7 0 19 0;
#X connect 7 1 9 0;
#X connect 9 0 10 0;
#X connect 9 1 12 0;
#X connect 10 0 11 0;
#X connect 11 0 14 0;
#X connect 12 0 13 0;
#X connect 13 0 14 0;
#X connect 14 0 15 0;
#X connect 15 0 0 0;
#X connect 17 0 19 0;
#X connect 18 0 19 0;
#X connect 19 0 8 0;
#X coords 0 -1 1 1 85 40 1 100 100;
#X restore 47 169 pd control;
#X connect 0 0 5 0;
#X connect 2 0 1 0;
#X connect 9 0 10 0;
#X connect 10 0 21 0;
#X connect 11 0 7 1;
#X connect 12 0 3 0;
#X connect 14 0 17 0;
#X connect 14 1 17 1;
#X connect 15 0 14 0;
#X connect 16 0 14 1;
#X connect 24 0 23 0;
