#N canvas 615 182 594 188 10; #X declare -lib Gem; #X obj 29 20 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X text 49 19 Reset; #X obj 202 27 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #N canvas 0 22 981 585 structure_creation 0; #X msg 681 243 mass filet 1 100 0; #X msg 663 64 reset; #X obj 418 25 t b b b b b b b b b b b b; #X obj 681 201 until; #X msg 681 170 400; #X msg 561 378 link fil \$1 \$2 10 1; #X msg 561 174 380; #X obj 561 206 until; #X obj 561 245 f 0; #X obj 609 261 + 1; #X msg 618 226 0; #X obj 636 312 + 20; #X obj 561 339 pack f f; #X obj 561 288 t f f; #X msg 397 151 400; #X obj 397 189 until; #X obj 397 231 f 0; #X obj 445 247 + 1; #X msg 454 212 0; #X obj 397 292 t f f; #X obj 452 325 mod 20; #X obj 452 355 != 19; #X obj 397 393 spigot; #X obj 397 475 pack f f; #X obj 397 424 t f f; #X obj 472 448 + 1; #X msg 397 505 link fil \$1 \$2 10 1; #X msg 403 107 setFixed 0 \, setFixed 19 \, setFixed 380 \, setFixed 399; #X obj 418 -8 inlet; #X obj 326 61 loadbang; #X obj 690 527 s \$0-pmpdin; #X connect 0 0 30 0; #X connect 1 0 30 0; #X connect 2 5 27 0; #X connect 2 6 14 0; #X connect 2 7 18 0; #X connect 2 8 6 0; #X connect 2 9 10 0; #X connect 2 10 4 0; #X connect 2 11 1 0; #X connect 3 0 0 0; #X connect 4 0 3 0; #X connect 5 0 30 0; #X connect 6 0 7 0; #X connect 7 0 8 0; #X connect 8 0 9 0; #X connect 8 0 13 0; #X connect 9 0 8 1; #X connect 10 0 8 1; #X connect 11 0 12 1; #X connect 12 0 5 0; #X connect 13 0 12 0; #X connect 13 1 11 0; #X connect 14 0 15 0; #X connect 15 0 16 0; #X connect 16 0 17 0; #X connect 16 0 19 0; #X connect 17 0 16 1; #X connect 18 0 16 1; #X connect 19 0 22 0; #X connect 19 1 20 0; #X connect 20 0 21 0; #X connect 21 0 22 1; #X connect 22 0 24 0; #X connect 23 0 26 0; #X connect 24 0 23 0; #X connect 24 1 25 0; #X connect 25 0 23 1; #X connect 26 0 30 0; #X connect 27 0 30 0; #X connect 28 0 2 0; #X connect 29 0 2 0; #X restore 29 39 pd structure_creation; #N canvas 813 63 450 300 gem 0; #X obj 114 171 gemwin; #X msg 134 149 0 \, destroy; #X msg 114 125 reset \, create \, 1 \, lighting 1; #X obj 114 71 inlet; #X obj 114 97 sel 1 0; #X connect 1 0 0 0; #X connect 2 0 0 0; #X connect 3 0 4 0; #X connect 4 0 2 0; #X connect 4 1 1 0; #X restore 30 85 pd gem; #X obj 30 63 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1 ; #X text 200 -6 send forces; #X text 200 7 on a row; #N canvas 0 22 450 300 damping 0; #X msg 151 90 setD fil \$1; #X obj 151 70 / 8; #X obj 151 47 inlet; #X obj 151 113 s \$0-pmpdin; #X connect 0 0 3 0; #X connect 1 0 0 0; #X connect 2 0 1 0; #X restore 301 119 pd damping; #X obj 304 100 hsl 128 15 0 127 0 0 empty empty empty -2 -8 0 10 -262144 -1 -1 0 1; #X text 300 79 change viscosity; #N canvas 0 22 450 300 row 0; #X msg 149 87 20; #X obj 149 132 f 6; #X obj 149 112 until; #X obj 192 133 + 20; #X msg 208 113 6; #X obj 149 63 t b b; #X msg 149 153 forceX \$1 30; #X obj 149 38 inlet; #X obj 149 183 s \$0-pmpdin; #X connect 0 0 2 0; #X connect 1 0 3 0; #X connect 1 0 6 0; #X connect 2 0 1 0; #X connect 3 0 1 1; #X connect 4 0 1 1; #X connect 5 0 0 0; #X connect 5 1 4 0; #X connect 6 0 8 0; #X connect 7 0 5 0; #X restore 202 51 pd row; #X obj 201 105 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X text 199 70 send forces; #X text 50 63 Gem on/off; #X obj 305 38 hsl 128 15 0 127 0 0 empty empty empty -2 -8 0 10 -262144 -1 -1 0 1; #X text 300 17 change rigidity; #N canvas 0 22 450 300 rigi 0; #X obj 151 47 inlet; #X obj 151 70 / 4; #X msg 151 90 setK fil \$1; #X obj 151 113 s \$0-pmpdin; #X connect 0 0 1 0; #X connect 1 0 2 0; #X connect 2 0 3 0; #X restore 302 57 pd rigi; #X text 199 83 on a point; #N canvas 0 22 450 300 point 0; #X msg 192 123 forceX 10 100; #X obj 193 95 inlet; #X obj 192 156 s \$0-pmpdin; #X connect 0 0 2 0; #X connect 1 0 0 0; #X restore 201 126 pd point; #X text 469 -2 move a corner; #N canvas 0 22 450 300 corner 0; #X msg 222 89 posX 0 \$1; #X obj 222 65 / 30; #X obj 223 32 inlet; #X obj 222 115 s \$0-pmpdin; #X connect 0 0 3 0; #X connect 1 0 0 0; #X connect 2 0 1 0; #X restore 471 155 pd corner; #X obj 471 17 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 0 1; #N canvas 696 124 709 588 compute 0; #X msg 126 130 bang \, get massesPos; #X obj 126 27 gemhead; #X obj 126 224 route massesPos; #X obj 126 290 unpack f f; #X obj 34 539 translateXYZ; #X obj 126 334 mod 20; #X obj 126 389 - 3; #X obj 126 363 * 0.3; #X obj 126 257 t b a; #X obj 197 326 / 20; #X obj 197 356 int; #X obj 197 383 * -0.3; #X obj 197 410 + 3; #X obj 439 286 gemhead; #X obj 439 349 light; #X obj 439 318 translateXYZ 0 0 1; #X obj 33 572 cube 0.08; #X obj 126 58 t b b; #X msg 171 97 bang \, bang \, bang \, bang \, bang \, bang \, bang ; #X obj 34 443 translateXYZ 0 0 -2; #X obj 34 477 rotateXYZ 0 20 0; #X obj 141 153 r \$0-pmpdin; #X obj 126 184 pmpd --------------; #X obj 34 365 gemlist; #X obj 45 327 gemhead; #X obj 34 402 separator; #X connect 0 0 22 0; #X connect 1 0 17 0; #X connect 2 0 8 0; #X connect 3 0 5 0; #X connect 3 0 9 0; #X connect 3 1 4 3; #X connect 4 0 16 0; #X connect 5 0 7 0; #X connect 6 0 4 1; #X connect 7 0 6 0; #X connect 8 0 23 0; #X connect 8 1 3 0; #X connect 9 0 10 0; #X connect 10 0 11 0; #X connect 11 0 12 0; #X connect 12 0 4 2; #X connect 13 0 15 0; #X connect 15 0 14 0; #X connect 17 0 0 0; #X connect 17 1 18 0; #X connect 18 0 22 0; #X connect 19 0 20 0; #X connect 20 0 4 0; #X connect 21 0 22 0; #X connect 22 0 2 0; #X connect 23 0 25 0; #X connect 24 0 23 1; #X connect 25 0 19 0; #X restore 30 109 pd compute; #X text 29 151 COPYRIGHT : Nicolas Montgermont 2010; #X obj 27 -3 declare -lib Gem; #X connect 0 0 3 0; #X connect 2 0 11 0; #X connect 5 0 4 0; #X connect 9 0 8 0; #X connect 12 0 19 0; #X connect 15 0 17 0; #X connect 22 0 21 0;