#N struct 1071-xy-pad-knob-1 float x0 float y0 float id; #N canvas 75 218 764 482 10; #X declare -lib Gem; #X obj 27 380 hradio 15 1 0 5 empty empty empty 0 -8 0 10 -262144 -1 -1 0; #X floatatom 185 212 5 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 185 192 pd fps; #N canvas 93 66 1183 666 shaders_PM 0; #X obj 718 34 gemhead; #X obj 718 57 route gem_state; #X obj 718 79 route 1 0; #X obj 24 477 translateXYZ 0 0 -4; #X obj 24 609 square 4; #X msg 50 399 texunit 1; #X obj 50 378 loadbang; #N canvas 573 206 607 627 shader 0; #X obj 126 247 change; #X obj 126 323 print linking; #X obj 32 227 glsl_fragment; #N canvas 0 0 450 300 load_shader 0; #X obj 89 99 t b b; #X msg 119 126 0; #X obj 89 154 outlet; #X obj 89 71 gemhead 1; #X connect 0 0 2 0; #X connect 0 1 1 0; #X connect 1 0 3 0; #X connect 3 0 0 0; #X restore 148 49 pd load_shader; #X obj 32 36 inlet; #X obj 32 423 outlet; #X obj 155 18 inlet; #N canvas 0 0 450 300 init_shader 0; #X obj 89 154 outlet; #X obj 89 45 inlet; #X obj 89 73 change; #X obj 89 100 t b; #X connect 1 0 2 0; #X connect 2 0 3 0; #X connect 3 0 0 0; #X restore 113 378 pd init_shader; #X obj 278 25 inlet; #X obj 113 408 outlet; #X msg 42 203 open mass.frag; #X obj 32 354 glsl_program; #X obj 32 137 glsl_vertex; #X msg 42 113 open mass.vert; #X obj 94 74 t b b; #X obj 126 272 pack f f; #X msg 126 296 link \$1 \$2; #X connect 0 0 15 0; #X connect 2 0 11 0; #X connect 2 1 0 0; #X connect 3 0 14 0; #X connect 4 0 12 0; #X connect 6 0 14 0; #X connect 7 0 9 0; #X connect 8 0 11 0; #X connect 10 0 2 0; #X connect 11 0 5 0; #X connect 11 1 7 0; #X connect 12 0 2 0; #X connect 12 1 15 1; #X connect 13 0 12 0; #X connect 14 0 10 0; #X connect 14 1 13 0; #X connect 15 0 16 0; #X connect 16 0 1 0; #X connect 16 0 11 0; #X restore 24 257 pd shader; #X obj 53 234 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 506 468 translateXYZ 0 0 -4; #X obj 506 610 square 4; #X obj 261 477 translateXYZ 0 0 -4; #X obj 290 368 loadbang; #N canvas 62 27 528 709 shader 0; #X obj 32 384 glsl_program; #X obj 32 36 inlet; #X obj 32 453 outlet; #X obj 155 18 inlet; #N canvas 0 0 450 300 init_shader 0; #X obj 89 154 outlet; #X obj 89 45 inlet; #X obj 89 73 change; #X obj 89 100 t b; #X connect 1 0 2 0; #X connect 2 0 3 0; #X connect 3 0 0 0; #X restore 113 408 pd init_shader; #X obj 278 25 inlet; #X obj 113 438 outlet; #X obj 126 247 change; #X obj 126 323 print linking; #X obj 32 227 glsl_fragment; #N canvas 0 0 450 300 load_shader 0; #X obj 89 99 t b b; #X msg 119 126 0; #X obj 89 154 outlet; #X obj 89 71 gemhead 1; #X connect 0 0 2 0; #X connect 0 1 1 0; #X connect 1 0 3 0; #X connect 3 0 0 0; #X restore 148 49 pd load_shader; #X obj 32 137 glsl_vertex; #X obj 94 74 t b b; #X obj 126 272 pack f f; #X msg 126 296 link \$1 \$2; #X msg 42 113 open link.vert; #X msg 42 203 open link.frag; #X connect 0 0 2 0; #X connect 0 1 4 0; #X connect 1 0 11 0; #X connect 3 0 12 0; #X connect 4 0 6 0; #X connect 5 0 0 0; #X connect 7 0 13 0; #X connect 9 0 0 0; #X connect 9 1 7 0; #X connect 10 0 12 0; #X connect 11 0 9 0; #X connect 11 1 13 1; #X connect 12 0 16 0; #X connect 12 1 15 0; #X connect 13 0 14 0; #X connect 14 0 8 0; #X connect 14 0 0 0; #X connect 15 0 11 0; #X connect 16 0 9 0; #X restore 261 256 pd shader; #X obj 292 231 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 280 539 loadbang; #X obj 119 448 s texture_mass; #X obj 359 444 s texture_link; #X obj 530 373 loadbang; #X msg 530 394 texunit 2; #X msg 286 390 texunit 3; #X obj 601 440 s texture_mass2; #X obj 321 229 r shader_link; #X obj 321 277 s init_shader_link; #X obj 261 612 square 4; #X obj 613 34 inlet; #X obj 24 201 gemhead 2; #X obj 261 185 gemhead 11; #X obj 506 236 gemhead 21; #X msg 41 561 rectangle 1 \, quality 0; #X msg 280 560 rectangle 1 \, quality 0; #X obj 615 58 t b b; #X obj 658 36 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 621 113 s init_shader_link; #X obj 84 233 r shader_mass; #X obj 84 281 s init_shader_mass; #X obj 601 140 s init_shader_mass; #X obj 261 589 pix_texture; #X obj 261 418 gemframebuffer; #X obj 24 588 pix_texture; #X obj 24 425 gemframebuffer; #X obj 65 310 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 506 418 gemframebuffer; #X obj 524 513 loadbang; #X msg 524 532 rectangle 1 \, quality 0; #X obj 506 588 pix_texture; #X obj 580 565 r texture_mass; #X obj 103 260 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 341 251 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 616 79 delay 500; #N canvas 0 0 446 324 init_fb 0; #X msg 100 173 type BYTE; #X msg 78 151 format RGB32; #X obj 46 121 t b b; #X obj 78 261 t a; #X obj 78 285 outlet; #X msg 137 215 rectangle 1; #X msg 46 196 dimen 128 128; #X obj 46 11 inlet; #X msg 137 42 0; #X obj 46 49 spigot 1; #X obj 46 72 t a b; #X connect 0 0 3 0; #X connect 1 0 3 0; #X connect 2 0 6 0; #X connect 2 1 1 0; #X connect 2 1 0 0; #X connect 2 1 5 0; #X connect 3 0 4 0; #X connect 5 0 3 0; #X connect 6 0 3 0; #X connect 7 0 9 0; #X connect 8 0 9 1; #X connect 9 0 10 0; #X connect 10 0 2 0; #X connect 10 1 8 0; #X restore 56 337 pd init_fb; #X obj 24 306 t a b; #X obj 302 300 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #N canvas 0 0 450 300 init_fb 0; #X msg 100 153 type BYTE; #X msg 78 131 format RGB32; #X obj 46 101 t b b; #X obj 78 241 t a; #X obj 78 265 outlet; #X msg 137 195 rectangle 1; #X msg 46 176 dimen 128 128; #X obj 46 11 inlet; #X msg 137 42 0; #X obj 46 49 spigot 1; #X obj 46 72 t a b; #X connect 0 0 3 0; #X connect 1 0 3 0; #X connect 2 0 6 0; #X connect 2 1 1 0; #X connect 2 1 0 0; #X connect 2 1 5 0; #X connect 3 0 4 0; #X connect 5 0 3 0; #X connect 6 0 3 0; #X connect 7 0 9 0; #X connect 8 0 9 1; #X connect 9 0 10 0; #X connect 10 0 2 0; #X connect 10 1 8 0; #X restore 293 327 pd init_fb; #X obj 261 296 t a b; #X obj 547 298 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #N canvas 0 0 450 300 init_fb 0; #X msg 100 153 type BYTE; #X msg 78 131 format RGB32; #X obj 46 101 t b b; #X obj 78 241 t a; #X obj 78 265 outlet; #X msg 137 195 rectangle 1; #X msg 46 176 dimen 128 128; #X obj 46 11 inlet; #X msg 137 42 0; #X obj 46 49 spigot 1; #X obj 46 72 t a b; #X connect 0 0 3 0; #X connect 1 0 3 0; #X connect 2 0 6 0; #X connect 2 1 1 0; #X connect 2 1 0 0; #X connect 2 1 5 0; #X connect 3 0 4 0; #X connect 5 0 3 0; #X connect 6 0 3 0; #X connect 7 0 9 0; #X connect 8 0 9 1; #X connect 9 0 10 0; #X connect 10 0 2 0; #X connect 10 1 8 0; #X restore 538 325 pd init_fb; #X obj 506 294 t a b; #X obj 32 29 gemhead 2; #X msg 271 106 0; #X obj 271 82 loadbang; #X msg 33 59 20; #X obj 32 90 until; #X obj 44 540 loadbang; #X msg 804 378 init \$1; #X floatatom 804 360 5 0 1 0 - - -; #X obj 762 371 t b; #X obj 762 254 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X msg 762 407 texture_link 3; #X msg 804 338 1; #X msg 950 229 gravite \$1; #X floatatom 948 189 5 0 0 0 - - -; #X floatatom 1012 190 5 0 0 0 - - -; #X msg 1012 206 D \$1; #X msg 1063 208 K1 \$1; #X floatatom 1062 189 5 0 0 0 - - -; #X obj 948 207 / 100; #X obj 950 251 t a; #X obj 950 526 s shader_link; #X obj 952 90 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 952 70 r init_shader_link; #X obj 950 146 t b; #X obj 952 127 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X msg 1059 168 0.05; #X msg 950 169 -0.0025; #X msg 1009 170 0.004; #X obj 842 314 delay 1000; #X msg 842 337 0; #X obj 762 454 s shader_mass; #X obj 762 225 r init_shader_mass; #X obj 804 286 t b; #X msg 992 362 init \$1; #X floatatom 992 344 5 0 1 0 - - -; #X msg 992 322 1; #X obj 1030 298 delay 1000; #X msg 1030 321 0; #X obj 991 270 t b; #X msg 1049 470 texture_mass 1; #X msg 1040 496 texture_mass_old 2; #X obj 1040 419 t b; #X msg 771 426 texture_mass_old 2; #X msg 1071 391 N \$1; #X msg 1071 367 0.01; #X msg 1121 368 0; #X obj 1078 340 delay 100; #X connect 0 0 1 0; #X connect 1 0 2 0; #X connect 2 0 31 0; #X connect 3 0 39 0; #X connect 5 0 40 0; #X connect 6 0 5 0; #X connect 7 0 51 0; #X connect 7 1 35 0; #X connect 8 0 7 1; #X connect 9 0 45 0; #X connect 11 0 37 0; #X connect 12 0 20 0; #X connect 13 0 54 0; #X connect 13 1 23 0; #X connect 14 0 13 1; #X connect 15 0 30 0; #X connect 18 0 19 0; #X connect 19 0 42 0; #X connect 20 0 38 0; #X connect 22 0 13 2; #X connect 25 0 31 0; #X connect 26 0 7 0; #X connect 27 0 13 0; #X connect 28 0 57 0; #X connect 29 0 39 0; #X connect 30 0 37 0; #X connect 31 0 49 0; #X connect 31 1 8 0; #X connect 31 1 14 0; #X connect 32 0 31 0; #X connect 34 0 7 2; #X connect 37 0 24 0; #X connect 38 0 11 0; #X connect 38 1 17 0; #X connect 38 1 37 1; #X connect 39 0 4 0; #X connect 40 0 3 0; #X connect 40 1 16 0; #X connect 40 1 39 1; #X connect 41 0 50 0; #X connect 42 0 9 0; #X connect 42 1 21 0; #X connect 43 0 44 0; #X connect 44 0 45 0; #X connect 45 0 10 0; #X connect 46 0 45 1; #X connect 47 0 35 0; #X connect 48 0 23 0; #X connect 49 0 33 0; #X connect 49 0 36 0; #X connect 50 0 40 0; #X connect 51 0 40 0; #X connect 51 1 50 0; #X connect 52 0 53 0; #X connect 53 0 38 0; #X connect 54 0 38 0; #X connect 54 1 53 0; #X connect 55 0 56 0; #X connect 56 0 42 0; #X connect 57 0 42 0; #X connect 57 1 56 0; #X connect 58 0 61 0; #X connect 59 0 26 0; #X connect 59 0 27 0; #X connect 59 0 28 0; #X connect 60 0 59 0; #X connect 61 0 62 0; #X connect 62 0 26 0; #X connect 62 0 27 0; #X connect 62 0 28 0; #X connect 63 0 29 0; #X connect 64 0 88 0; #X connect 65 0 64 0; #X connect 66 0 68 0; #X connect 66 0 100 0; #X connect 67 0 66 0; #X connect 67 0 90 0; #X connect 68 0 88 0; #X connect 69 0 65 0; #X connect 70 0 77 0; #X connect 71 0 76 0; #X connect 72 0 73 0; #X connect 73 0 77 0; #X connect 74 0 77 0; #X connect 75 0 74 0; #X connect 76 0 70 0; #X connect 77 0 78 0; #X connect 79 0 82 0; #X connect 79 0 96 0; #X connect 80 0 79 0; #X connect 81 0 84 0; #X connect 81 0 85 0; #X connect 81 0 83 0; #X connect 82 0 81 0; #X connect 83 0 75 0; #X connect 84 0 71 0; #X connect 85 0 72 0; #X connect 86 0 87 0; #X connect 87 0 65 0; #X connect 89 0 67 0; #X connect 90 0 69 0; #X connect 90 0 86 0; #X connect 91 0 78 0; #X connect 92 0 91 0; #X connect 93 0 92 0; #X connect 94 0 95 0; #X connect 94 0 102 0; #X connect 94 0 104 0; #X connect 95 0 92 0; #X connect 96 0 93 0; #X connect 96 0 94 0; #X connect 96 0 99 0; #X connect 97 0 78 0; #X connect 98 0 78 0; #X connect 99 0 97 0; #X connect 99 0 98 0; #X connect 100 0 88 0; #X connect 101 0 78 0; #X connect 102 0 101 0; #X connect 103 0 101 0; #X connect 104 0 103 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 - - -; #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 452 305 812 549 shader_render 0; #X obj 315 429 pix_texture; #X obj 67 256 gemframebuffer; #X obj 67 443 pix_texture; #X obj 67 305 translateXYZ 0 0 -4; #X obj 67 462 square 4; #X obj 85 369 loadbang; #N canvas 224 312 1052 398 init 0; #X obj 14 130 outlet; #X obj 14 30 inlet; #X obj 14 53 spigot 1; #X obj 31 81 t b; #X msg 67 31 0; #X msg 14 104 rectangle 1 \, type BYTE \, format RGB32 \, dim 256 256 ; #X connect 1 0 2 0; #X connect 2 0 5 0; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 2 1; #X connect 5 0 0 0; #X restore 99 223 pd init; #N canvas 573 206 496 427 shader 0; #X obj 32 264 glsl_program; #X obj 126 187 change; #X obj 126 233 print linking; #X obj 32 167 glsl_fragment; #X msg 126 208 link \$1; #N canvas 0 0 450 300 load_shader 0; #X obj 89 99 t b b; #X msg 119 126 0; #X obj 89 154 outlet; #X obj 89 71 gemhead 30; #X connect 0 0 2 0; #X connect 0 1 1 0; #X connect 1 0 3 0; #X connect 3 0 0 0; #X restore 120 89 pd load_shader; #X obj 32 36 inlet; #X obj 32 333 outlet; #X obj 155 18 inlet; #N canvas 0 0 450 300 init_shader 0; #X obj 89 154 outlet; #X obj 89 45 inlet; #X obj 89 73 change; #X obj 89 100 t b; #X connect 1 0 2 0; #X connect 2 0 3 0; #X connect 3 0 0 0; #X restore 113 288 pd init_shader; #X obj 278 25 inlet; #X obj 113 318 outlet; #X msg 43 143 open interpol.frag; #X msg 135 265 set -1; #X connect 0 0 7 0; #X connect 0 1 9 0; #X connect 1 0 4 0; #X connect 3 0 0 0; #X connect 3 1 1 0; #X connect 4 0 0 0; #X connect 4 0 2 0; #X connect 5 0 12 0; #X connect 6 0 3 0; #X connect 8 0 12 0; #X connect 8 0 13 0; #X connect 9 0 11 0; #X connect 10 0 0 0; #X connect 12 0 3 0; #X connect 13 0 9 0; #X restore 67 175 pd shader; #X obj 92 156 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 146 134 t b; #X msg 146 155 texture_mass 1; #N canvas 68 405 301 465 shader 0; #X obj 110 298 pack 0 0; #X obj 131 278 t b f; #X msg 110 321 link \$1 \$2; #X floatatom 131 259 2 0 0 0 ID - -; #X floatatom 110 158 2 0 0 0 ID - -; #X obj 128 342 print linking; #X obj 74 70 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 38 213 glsl_fragment; #X obj 38 116 glsl_vertex; #X obj 110 135 change; #X obj 131 233 change; #X obj 38 371 glsl_program; #N canvas 70 231 450 300 load_glsl 0; #X obj 51 22 gemhead; #X obj 51 98 outlet; #X obj 51 50 route gem_state; #X obj 51 74 route 1; #X connect 0 0 2 0; #X connect 2 0 3 0; #X connect 3 0 1 0; #X restore 74 45 pd load_glsl; #X obj 41 13 inlet; #X obj 37 397 outlet; #X obj 150 10 inlet; #X obj 265 14 inlet; #N canvas 0 0 450 300 init_shader 0; #X obj 89 154 outlet; #X obj 89 45 inlet; #X obj 89 73 change; #X obj 89 100 t b; #X connect 1 0 2 0; #X connect 2 0 3 0; #X connect 3 0 0 0; #X restore 107 399 pd init_shader; #X obj 107 429 outlet; #X msg 52 94 open fetching2.vert; #X msg 48 183 open fetching2.frag; #X msg 132 373 set -1; #X connect 0 0 2 0; #X connect 1 0 0 0; #X connect 1 1 0 1; #X connect 2 0 5 0; #X connect 2 0 11 0; #X connect 3 0 1 0; #X connect 4 0 0 0; #X connect 6 0 19 0; #X connect 6 0 20 0; #X connect 7 0 11 0; #X connect 7 1 10 0; #X connect 8 0 7 0; #X connect 8 1 9 0; #X connect 9 0 4 0; #X connect 10 0 3 0; #X connect 11 0 14 0; #X connect 11 1 17 0; #X connect 12 0 6 0; #X connect 13 0 8 0; #X connect 15 0 6 0; #X connect 15 0 21 0; #X connect 16 0 11 0; #X connect 17 0 18 0; #X connect 19 0 8 0; #X connect 20 0 7 0; #X connect 21 0 17 0; #X restore 315 208 pd shader; #X obj 345 185 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 387 229 t b; #X obj 315 116 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #X obj 147 114 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 163 278 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 410 156 delay 1000; #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 327 399 quality 0; #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 - - -; #X obj 485 28 inlet; #X obj 327 365 loadbang; #X obj 67 198 t a b; #X msg 410 185 texture 4; #X msg 85 396 rectangle 1 \, quality 0; #X obj 637 140 loadbang; #X msg 637 162 15; #X obj 637 184 s \$0-scale; #X connect 0 0 22 0; #X connect 1 0 3 0; #X connect 1 1 0 1; #X connect 1 1 2 1; #X connect 1 1 16 0; #X connect 2 0 4 0; #X connect 3 0 2 0; #X connect 5 0 35 0; #X connect 6 0 1 0; #X connect 7 0 33 0; #X connect 7 1 15 0; #X connect 8 0 7 1; #X connect 9 0 10 0; #X connect 10 0 7 2; #X connect 11 0 25 0; #X connect 11 1 13 0; #X connect 12 0 11 1; #X connect 13 0 34 0; #X connect 14 0 19 0; #X connect 15 0 9 0; #X connect 17 0 14 0; #X connect 18 0 7 0; #X connect 19 0 23 0; #X connect 20 0 21 0; #X connect 20 0 12 0; #X connect 20 0 8 0; #X connect 21 0 34 0; #X connect 23 0 11 0; #X connect 24 0 0 0; #X connect 25 0 24 0; #X connect 26 0 0 0; #X connect 27 0 22 0; #X connect 28 0 22 0; #X connect 29 0 22 0; #X connect 30 0 24 1; #X connect 30 0 24 2; #X connect 30 0 24 3; #X connect 31 0 30 0; #X connect 32 0 26 0; #X connect 33 0 1 0; #X connect 33 1 6 0; #X connect 34 0 11 2; #X connect 35 0 2 0; #X connect 36 0 37 0; #X connect 37 0 38 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 - - -; #X obj 606 324 * 10; #N canvas 30 53 450 300 Gem.init 0; #X obj 26 3 loadbang; #X msg 26 26 perspec -1 1 -1 1 10 100; #X obj 26 124 t a; #X obj 25 153 outlet; #X msg 55 77 dimen 800 600; #X msg 37 51 FSAA 5; #X connect 0 0 1 0; #X connect 0 0 5 0; #X connect 0 0 4 0; #X connect 1 0 2 0; #X connect 2 0 3 0; #X connect 4 0 2 0; #X connect 5 0 2 0; #X restore 66 188 pd Gem.init; #N canvas 341 104 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 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 obj 318 255 gemwin 30; #X msg 441 219 color 0.2 0.3 0.5; #X msg 443 257 dimen 1024 768; #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 17 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 8 0; #X connect 18 0 17 0; #X connect 19 0 17 0; #X coords 0 -1 1 1 85 40 1 100 100; #X restore 47 209 pd gemwin 30; #X floatatom 210 282 5 0 0 0 scale-> #0-scale -; #X obj 6 325 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #N canvas 290 239 395 502 shader_normal 0; #X obj 51 233 gemframebuffer; #X obj 51 347 pix_texture; #X obj 51 276 translateXYZ 0 0 -4; #X obj 51 366 square 4; #X obj 67 304 loadbang; #N canvas 0 0 1052 398 init 0; #X obj 14 140 outlet; #X obj 14 30 inlet; #X obj 14 55 spigot 1; #X obj 24 76 b; #X msg 67 31 0; #X msg 14 114 rectangle 1 \, type BYTE \, format RGB32 \, dim 128 128 ; #X connect 1 0 2 0; #X connect 2 0 5 0; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 2 1; #X connect 5 0 0 0; #X restore 83 160 pd init; #N canvas 555 24 496 709 shader 0; #X obj 32 474 glsl_program; #X obj 126 357 change; #X obj 126 443 print linking; #X obj 32 337 glsl_fragment; #N canvas 0 0 450 300 load_shader 0; #X obj 89 99 t b b; #X msg 119 126 0; #X obj 89 154 outlet; #X obj 89 71 gemhead 30; #X connect 0 0 2 0; #X connect 0 1 1 0; #X connect 1 0 3 0; #X connect 3 0 0 0; #X restore 134 96 pd load_shader; #X obj 32 36 inlet; #X obj 32 543 outlet; #X obj 175 28 inlet; #N canvas 0 0 450 300 init_shader 0; #X obj 89 154 outlet; #X obj 89 45 inlet; #X obj 89 73 change; #X obj 89 100 t b; #X connect 1 0 2 0; #X connect 2 0 3 0; #X connect 3 0 0 0; #X restore 113 498 pd init_shader; #X obj 278 25 inlet; #X obj 113 528 outlet; #X msg 43 313 open normal.frag; #X obj 32 185 glsl_vertex; #X obj 96 122 t b b; #X obj 126 393 pack f f; #X msg 126 418 link \$1 \$2; #X msg 42 161 open normal.vert; #X connect 0 0 6 0; #X connect 0 1 8 0; #X connect 1 0 14 0; #X connect 3 0 0 0; #X connect 3 1 1 0; #X connect 4 0 13 0; #X connect 5 0 12 0; #X connect 7 0 13 0; #X connect 8 0 10 0; #X connect 9 0 0 0; #X connect 11 0 3 0; #X connect 12 0 3 0; #X connect 12 1 14 1; #X connect 13 0 11 0; #X connect 13 1 16 0; #X connect 14 0 15 0; #X connect 15 0 0 0; #X connect 15 0 2 0; #X connect 16 0 12 0; #X restore 51 112 pd shader; #X obj 76 93 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 143 65 t b; #X obj 146 45 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 157 252 s texture_normal; #X obj 51 39 gemhead 32; #X obj 78 189 loadbang; #X msg 78 208 texunit 4; #X msg 141 88 texture_mass 1; #X obj 51 136 t a b; #X msg 67 323 rectangle 1 \, quality 1; #X connect 0 0 2 0; #X connect 0 1 10 0; #X connect 0 1 1 1; #X connect 1 0 3 0; #X connect 2 0 1 0; #X connect 4 0 16 0; #X connect 5 0 0 0; #X connect 6 0 15 0; #X connect 6 1 9 0; #X connect 7 0 6 1; #X connect 8 0 14 0; #X connect 9 0 8 0; #X connect 11 0 6 0; #X connect 12 0 13 0; #X connect 13 0 0 0; #X connect 14 0 6 2; #X connect 15 0 0 0; #X connect 15 1 5 0; #X connect 16 0 1 0; #X restore 27 342 pd shader_normal ______________; #X obj 6 304 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #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 - - -; #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 -262144 -1 -1 1 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 -99865 -66577 0; #N canvas 493 264 450 300 \$0-work 0; #X scalar 1071-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 -262144 -1 -1 0 1; #X obj 538 152 vsl 15 128 0 1 0 0 empty \$0-direction direction 0 -9 0 10 -262144 -1 -1 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 connect 0 0 5 0; #X connect 2 0 1 0; #X connect 9 0 10 0; #X connect 10 0 24 0; #X connect 11 0 12 0; #X connect 13 0 7 1; #X connect 14 0 3 0; #X connect 16 0 7 0; #X connect 17 0 20 0; #X connect 17 1 20 1; #X connect 18 0 17 0; #X connect 19 0 17 1;