aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorCyrille Henry <nusmuk@users.sourceforge.net>2014-01-22 20:21:56 +0000
committerCyrille Henry <nusmuk@users.sourceforge.net>2014-01-22 20:21:56 +0000
commitb9498ede7b3191523ab34caed48602a5d4ce10de (patch)
tree9cc13a65ea69d65ee9a66f4ec3c4f431955a8690 /examples
parentfa88252b031f869f1ade25770a783060c541ac1b (diff)
add examples
svn path=/trunk/externals/pmpd/; revision=17246
Diffstat (limited to 'examples')
-rw-r--r--examples/63_random_network.pd215
-rw-r--r--examples/64_distordable_object.pd326
-rw-r--r--examples/65_2d_interactors.pd151
3 files changed, 692 insertions, 0 deletions
diff --git a/examples/63_random_network.pd b/examples/63_random_network.pd
new file mode 100644
index 0000000..8fda0c2
--- /dev/null
+++ b/examples/63_random_network.pd
@@ -0,0 +1,215 @@
+#N canvas 199 680 543 322 10;
+#X declare -lib Gem;
+#X obj 52 193 pmpd2d;
+#X obj 52 78 loadbang;
+#X obj 64 101 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#N canvas 679 299 1137 609 creation 0;
+#X obj 41 20 inlet;
+#X obj 51 48 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 41 77 t b b b b b b b b b b b;
+#X msg 255 110 reset;
+#X obj 67 581 outlet;
+#X obj 162 153 until;
+#X obj 162 185 f;
+#X obj 234 237 + 1;
+#X msg 192 183 0;
+#X obj 162 356 pack f f;
+#X msg 162 381 mass net 1 1 \$1 \$2;
+#X msg 309 553 print;
+#X msg 122 407 link link net net 0.1 0.02;
+#X obj 386 40 inlet;
+#X msg 386 85 setInactive \$1 \, setLinkId \$1 inactive;
+#X obj 189 258 random 1000;
+#X obj 189 280 / 1000;
+#X obj 162 308 random 1000;
+#X obj 162 330 / 1000;
+#X obj 162 232 t b b f;
+#X msg 162 131 200;
+#X msg 95 438 testLink remove_long_link lengthSup 0.15;
+#X obj 42 434 t b;
+#X msg 57 484 testMass fixing_corner distanceCircleInf 0 1 0.15;
+#X msg 47 504 testMass fixing_corner distanceCircleInf 1 0 0.15;
+#X msg 37 524 testMass fixing_corner distanceCircleInf 1 1 0.15;
+#X msg 67 464 testMass fixing_corner distanceCircleInf 0 0 0.15;
+#X obj 610 317 + 1;
+#X obj 583 271 gemmouse 1 -1;
+#X obj 555 244 spigot;
+#X msg 555 368 setFixed \$1 \, setPos \$1 \$2 \$3;
+#X obj 555 339 pack f f f;
+#X msg 478 117 setFixed \$1 \, setMassId corned;
+#X obj 555 192 f;
+#X obj 570 145 t f b;
+#X obj 597 165 delay 0;
+#X text 596 189 select only 1 mass;
+#X obj 659 450 change -1;
+#X obj 659 474 sel 0;
+#X text 702 476 when releasing the mass moved by the mouse \, adapt
+lenght of the link connected to this mass to curent length;
+#X obj 659 499 f;
+#X obj 386 62 route remove_long_link fixing_corner mouse_move adapt_length
+;
+#X obj 670 316 delay 1;
+#X obj 667 294 t b;
+#X msg 651 86 setLCurrent \$1;
+#X msg 658 523 testLink adapt_length Id link connectedTo \$1 \, setMobile
+\$1;
+#X connect 0 0 2 0;
+#X connect 1 0 2 0;
+#X connect 2 2 22 0;
+#X connect 2 4 21 0;
+#X connect 2 6 12 0;
+#X connect 2 9 20 0;
+#X connect 2 10 3 0;
+#X connect 2 10 8 0;
+#X connect 3 0 4 0;
+#X connect 5 0 6 0;
+#X connect 6 0 19 0;
+#X connect 7 0 6 1;
+#X connect 8 0 6 1;
+#X connect 9 0 10 0;
+#X connect 10 0 4 0;
+#X connect 11 0 4 0;
+#X connect 12 0 4 0;
+#X connect 13 0 41 0;
+#X connect 14 0 4 0;
+#X connect 15 0 16 0;
+#X connect 16 0 9 1;
+#X connect 17 0 18 0;
+#X connect 18 0 9 0;
+#X connect 19 0 17 0;
+#X connect 19 1 15 0;
+#X connect 19 2 7 0;
+#X connect 20 0 5 0;
+#X connect 21 0 4 0;
+#X connect 22 0 26 0;
+#X connect 22 0 23 0;
+#X connect 22 0 24 0;
+#X connect 22 0 25 0;
+#X connect 23 0 4 0;
+#X connect 24 0 4 0;
+#X connect 25 0 4 0;
+#X connect 26 0 4 0;
+#X connect 27 0 31 2;
+#X connect 28 0 31 1;
+#X connect 28 0 43 0;
+#X connect 28 1 27 0;
+#X connect 28 2 29 1;
+#X connect 28 2 37 0;
+#X connect 29 0 31 0;
+#X connect 30 0 4 0;
+#X connect 31 0 30 0;
+#X connect 32 0 4 0;
+#X connect 33 0 29 0;
+#X connect 33 0 40 1;
+#X connect 34 0 33 1;
+#X connect 34 1 35 0;
+#X connect 35 0 33 0;
+#X connect 37 0 38 0;
+#X connect 38 0 40 0;
+#X connect 40 0 45 0;
+#X connect 41 0 14 0;
+#X connect 41 1 32 0;
+#X connect 41 2 34 0;
+#X connect 41 3 44 0;
+#X connect 42 0 33 0;
+#X connect 43 0 42 0;
+#X connect 44 0 4 0;
+#X connect 45 0 4 0;
+#X restore 52 126 pd creation;
+#X obj 56 21 declare -lib Gem;
+#X obj 186 77 gemhead;
+#X obj 186 100 t b;
+#X obj 54 45 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 1
+;
+#N canvas 1157 484 591 562 linkrender 0;
+#X obj 150 9 inlet;
+#X obj 67 285 separator;
+#X obj 150 148 t b f;
+#X obj 67 368 curve 2;
+#X obj 177 178 pack f f;
+#X msg 177 201 \$1 \$2 0;
+#X obj 261 177 pack f f;
+#X msg 261 200 \$1 \$2 0;
+#X obj 146 97 unpack f f f f f;
+#X obj 67 224 gemhead 45;
+#X obj 67 116 loadbang;
+#X msg 67 174 0;
+#X msg 77 337 res 2;
+#X obj 77 311 loadbang;
+#X obj 145 53 route link;
+#X obj 68 246 scaleXYZ 8 8 0;
+#X obj 68 265 translateXYZ -0.5 -0.5 0;
+#X connect 0 0 14 0;
+#X connect 1 0 3 0;
+#X connect 2 0 9 0;
+#X connect 2 1 4 0;
+#X connect 4 0 5 0;
+#X connect 5 0 3 1;
+#X connect 6 0 7 0;
+#X connect 7 0 3 2;
+#X connect 8 1 2 0;
+#X connect 8 2 4 1;
+#X connect 8 3 6 0;
+#X connect 8 4 6 1;
+#X connect 9 0 15 0;
+#X connect 10 0 11 0;
+#X connect 11 0 9 0;
+#X connect 12 0 3 0;
+#X connect 13 0 12 0;
+#X connect 14 0 8 0;
+#X connect 15 0 16 0;
+#X connect 16 0 1 0;
+#X restore 174 241 pd linkrender;
+#X msg 186 122 bang \, linkEnd link;
+#N canvas 716 693 763 327 create_gem 0;
+#X msg 137 179 0 \, destroy;
+#X obj 118 200 gemwin;
+#X obj 118 104 inlet;
+#X obj 118 129 sel 1 0;
+#X msg 118 156 reset \, create \, 1;
+#X connect 0 0 1 0;
+#X connect 2 0 3 0;
+#X connect 3 0 4 0;
+#X connect 3 1 0 0;
+#X connect 4 0 1 0;
+#X restore 75 45 pd create_gem;
+#N canvas 1169 453 413 534 gemmouse 0;
+#X obj 65 218 outlet;
+#X obj 95 145 + 1;
+#X obj 60 43 gemmouse 1 -1;
+#X obj 98 89 sel 1;
+#X obj 97 69 change -1;
+#X obj 68 167 pack 0 0;
+#X obj 70 144 f;
+#X obj 97 115 delay 0;
+#X msg 66 191 \$1 \$2;
+#X connect 1 0 5 1;
+#X connect 2 0 6 1;
+#X connect 2 1 1 0;
+#X connect 2 2 4 0;
+#X connect 3 0 7 0;
+#X connect 4 0 3 0;
+#X connect 5 0 8 0;
+#X connect 6 0 5 0;
+#X connect 7 0 6 0;
+#X connect 8 0 0 0;
+#X restore 188 148 pd gemmouse;
+#X obj 52 216 route testLink testMass linkEnd;
+#X msg 188 170 testMass mouse_move distanceCircleInf \$1 \$2 0.05;
+#X text 50 283 click and drag connection point with mouse to destrod
+the net, f 62;
+#X connect 0 0 12 0;
+#X connect 1 0 3 0;
+#X connect 2 0 3 0;
+#X connect 3 0 0 0;
+#X connect 5 0 6 0;
+#X connect 6 0 9 0;
+#X connect 7 0 10 0;
+#X connect 9 0 0 0;
+#X connect 11 0 13 0;
+#X connect 12 0 3 1;
+#X connect 12 1 3 1;
+#X connect 12 2 8 0;
+#X connect 13 0 0 0;
diff --git a/examples/64_distordable_object.pd b/examples/64_distordable_object.pd
new file mode 100644
index 0000000..09a0395
--- /dev/null
+++ b/examples/64_distordable_object.pd
@@ -0,0 +1,326 @@
+#N canvas 358 434 669 579 10;
+#X declare -lib Gem;
+#X obj 52 300 pmpd2d;
+#X obj 52 78 loadbang;
+#X obj 64 101 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#N canvas 293 344 1137 609 creation 0;
+#X obj 256 -12 inlet;
+#X obj 266 16 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 257 49 t b b b b b b b b b b b;
+#X msg 824 175 reset;
+#X obj 504 540 outlet;
+#X obj 637 147 until;
+#X obj 637 179 f;
+#X obj 709 231 + 1;
+#X msg 679 147 0;
+#X obj 637 305 pack f f;
+#X msg 637 330 mass net 1 1 \$1 \$2;
+#X msg 746 512 print;
+#X obj 672 257 % 20;
+#X obj 637 258 / 20;
+#X obj 637 279 i;
+#X obj 637 226 t f f f f;
+#X obj 448 339 until;
+#X obj 448 371 f;
+#X obj 520 423 + 1;
+#X obj 448 418 t f f f f;
+#X obj 449 448 + 1, f 4;
+#X obj 447 476 pack f f;
+#X msg 448 317 19;
+#X obj 463 179 until;
+#X obj 463 211 f;
+#X msg 505 179 0;
+#X obj 524 242 + 1;
+#X obj 488 313 * 20;
+#X msg 463 157 20;
+#X msg 637 125 400;
+#X obj 314 297 until;
+#X obj 314 329 f;
+#X obj 386 381 + 1;
+#X obj 314 376 t f f f f;
+#X obj 313 434 pack f f;
+#X obj 329 137 until;
+#X obj 329 169 f;
+#X msg 371 137 0;
+#X obj 406 212 + 1;
+#X obj 354 271 * 20;
+#X msg 314 275 20;
+#X msg 329 115 19;
+#X obj 315 406 + 20;
+#X obj 148 299 until;
+#X obj 148 331 f;
+#X obj 220 383 + 1;
+#X obj 148 378 t f f f f;
+#X obj 147 436 pack f f;
+#X obj 163 139 until;
+#X obj 163 171 f;
+#X msg 205 139 0;
+#X obj 248 219 + 1;
+#X obj 188 273 * 20;
+#X msg 163 117 19;
+#X msg 148 277 19;
+#X obj 149 408 + 21;
+#X obj 0 290 until;
+#X obj 0 322 f;
+#X obj 72 374 + 1;
+#X obj 0 369 t f f f f;
+#X obj -1 427 pack f f;
+#X obj 15 130 until;
+#X obj 15 162 f;
+#X msg 57 130 0;
+#X obj 73 213 + 1;
+#X obj 40 264 * 20;
+#X msg 15 108 19;
+#X msg 0 268 19;
+#X obj 56 407 + 1;
+#X obj 14 237 t b f f;
+#X obj 162 246 t b f f;
+#X obj 328 244 t b f f;
+#X obj 462 286 t b f f;
+#X obj 2 399 + 20;
+#X msg 846 276 min -9 -9 \, max 29 29;
+#X msg 1 455 link link \$1 \$2 0.03 0.1;
+#X msg 152 463 link link \$1 \$2 0.03 0.1;
+#X msg 316 462 link link \$1 \$2 0.03 0.1;
+#X msg 448 501 link link \$1 \$2 0.03 0.1;
+#X connect 0 0 2 0;
+#X connect 1 0 2 0;
+#X connect 2 2 74 0;
+#X connect 2 4 66 0;
+#X connect 2 6 53 0;
+#X connect 2 7 41 0;
+#X connect 2 8 28 0;
+#X connect 2 9 29 0;
+#X connect 2 10 3 0;
+#X connect 2 10 8 0;
+#X connect 2 10 25 0;
+#X connect 2 10 37 0;
+#X connect 2 10 50 0;
+#X connect 2 10 63 0;
+#X connect 3 0 4 0;
+#X connect 5 0 6 0;
+#X connect 6 0 15 0;
+#X connect 7 0 6 1;
+#X connect 8 0 6 1;
+#X connect 9 0 10 0;
+#X connect 10 0 4 0;
+#X connect 11 0 4 0;
+#X connect 12 0 9 1;
+#X connect 13 0 14 0;
+#X connect 14 0 9 0;
+#X connect 15 0 13 0;
+#X connect 15 1 12 0;
+#X connect 15 2 7 0;
+#X connect 16 0 17 0;
+#X connect 17 0 19 0;
+#X connect 18 0 17 1;
+#X connect 19 0 20 0;
+#X connect 19 1 21 1;
+#X connect 19 2 18 0;
+#X connect 20 0 21 0;
+#X connect 21 0 78 0;
+#X connect 22 0 16 0;
+#X connect 23 0 24 0;
+#X connect 24 0 72 0;
+#X connect 25 0 24 1;
+#X connect 26 0 24 1;
+#X connect 27 0 17 1;
+#X connect 28 0 23 0;
+#X connect 29 0 5 0;
+#X connect 30 0 31 0;
+#X connect 31 0 33 0;
+#X connect 32 0 31 1;
+#X connect 33 0 42 0;
+#X connect 33 1 34 1;
+#X connect 33 2 32 0;
+#X connect 34 0 77 0;
+#X connect 35 0 36 0;
+#X connect 36 0 71 0;
+#X connect 37 0 36 1;
+#X connect 38 0 36 1;
+#X connect 39 0 31 1;
+#X connect 40 0 30 0;
+#X connect 41 0 35 0;
+#X connect 42 0 34 0;
+#X connect 43 0 44 0;
+#X connect 44 0 46 0;
+#X connect 45 0 44 1;
+#X connect 46 0 55 0;
+#X connect 46 1 47 1;
+#X connect 46 2 45 0;
+#X connect 47 0 76 0;
+#X connect 48 0 49 0;
+#X connect 49 0 70 0;
+#X connect 50 0 49 1;
+#X connect 51 0 49 1;
+#X connect 52 0 44 1;
+#X connect 53 0 48 0;
+#X connect 54 0 43 0;
+#X connect 55 0 47 0;
+#X connect 56 0 57 0;
+#X connect 57 0 59 0;
+#X connect 58 0 57 1;
+#X connect 59 0 73 0;
+#X connect 59 1 68 0;
+#X connect 59 2 58 0;
+#X connect 60 0 75 0;
+#X connect 61 0 62 0;
+#X connect 62 0 69 0;
+#X connect 63 0 62 1;
+#X connect 64 0 62 1;
+#X connect 65 0 57 1;
+#X connect 66 0 61 0;
+#X connect 67 0 56 0;
+#X connect 68 0 60 1;
+#X connect 69 0 67 0;
+#X connect 69 1 65 0;
+#X connect 69 2 64 0;
+#X connect 70 0 54 0;
+#X connect 70 1 52 0;
+#X connect 70 2 51 0;
+#X connect 71 0 40 0;
+#X connect 71 1 39 0;
+#X connect 71 2 38 0;
+#X connect 72 0 22 0;
+#X connect 72 1 27 0;
+#X connect 72 2 26 0;
+#X connect 73 0 60 0;
+#X connect 74 0 4 0;
+#X connect 75 0 4 0;
+#X connect 76 0 4 0;
+#X connect 77 0 4 0;
+#X connect 78 0 4 0;
+#X restore 52 126 pd creation;
+#X obj 56 -19 declare -lib Gem;
+#X obj 69 224 gemhead;
+#X obj 69 247 t b;
+#X obj 54 45 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 1
+;
+#N canvas 1324 493 591 562 linkrender 0;
+#X obj 150 9 inlet;
+#X obj 67 285 separator;
+#X obj 150 148 t b f;
+#X obj 67 368 curve 2;
+#X obj 177 178 pack f f;
+#X msg 177 201 \$1 \$2 0;
+#X obj 261 177 pack f f;
+#X msg 261 200 \$1 \$2 0;
+#X obj 146 97 unpack f f f f f;
+#X obj 67 224 gemhead 45;
+#X obj 67 116 loadbang;
+#X msg 67 174 0;
+#X msg 77 337 res 2;
+#X obj 77 311 loadbang;
+#X obj 145 53 route link;
+#X obj 68 265 translateXYZ -10 -10 0;
+#X obj 69 246 scaleXYZ 0.2 0.2 0.2;
+#X connect 0 0 14 0;
+#X connect 1 0 3 0;
+#X connect 2 0 9 0;
+#X connect 2 1 4 0;
+#X connect 4 0 5 0;
+#X connect 5 0 3 1;
+#X connect 6 0 7 0;
+#X connect 7 0 3 2;
+#X connect 8 1 2 0;
+#X connect 8 2 4 1;
+#X connect 8 3 6 0;
+#X connect 8 4 6 1;
+#X connect 9 0 16 0;
+#X connect 10 0 11 0;
+#X connect 11 0 9 0;
+#X connect 12 0 3 0;
+#X connect 13 0 12 0;
+#X connect 14 0 8 0;
+#X connect 15 0 1 0;
+#X connect 16 0 15 0;
+#X restore 52 345 pd linkrender;
+#N canvas 714 698 763 327 create_gem 0;
+#X msg 137 179 0 \, destroy;
+#X obj 118 104 inlet;
+#X obj 118 129 sel 1 0;
+#X msg 118 156 reset \, create \, 1;
+#X obj 118 200 gemwin 50;
+#X connect 0 0 4 0;
+#X connect 1 0 2 0;
+#X connect 2 0 3 0;
+#X connect 2 1 0 0;
+#X connect 3 0 4 0;
+#X restore 75 45 pd create_gem;
+#X obj 239 119 pack f f;
+#X obj 239 143 spigot 0;
+#X obj 255 31 gemmouse 40 -40;
+#X obj 239 97 - 10;
+#X obj 281 98 + 30;
+#X obj 240 73 f;
+#X obj 207 -13 gemhead;
+#X obj 207 10 t b;
+#X obj 207 53 until;
+#X msg 69 268 linkEnd link;
+#X obj 52 323 route linkEnd testLink;
+#X msg 151 366 setInactive \$1 \, setLinkId \$1 broken;
+#X obj 480 70 gemhead 45;
+#X obj 480 113 translateXYZ -10 -10 0;
+#X obj 480 92 scaleXYZ 0.2 0.2 0.2;
+#X obj 503 -1 gemmouse 40 -40;
+#X obj 503 34 - 10;
+#X obj 536 34 + 30;
+#X obj 480 134 translateXYZ;
+#X obj 480 155 circle 2;
+#X obj 151 345 route break plastic;
+#X msg 207 197 bang \, forceY net -1e-05 \,;
+#X msg 450 38 0;
+#X obj 451 14 loadbang;
+#X msg 239 169 iCircle net \$1 \$2 1 -0.1 1 0 0 0 1;
+#X text 62 452 click and drag the mouse cursor over the object : you
+can interact with it. if force in the links are to importantes \, the
+connection lenght will change (plastic deformation). if forces are
+to importante \, they will break.;
+#X msg 207 32 20;
+#X msg 185 225 testLink break Id link forceSup 0.03 \, testLink plastic
+Id link forceSup 0.002;
+#X msg 206 396 setLCurrent link 0.0001;
+#X connect 0 0 20 0;
+#X connect 1 0 3 0;
+#X connect 2 0 3 0;
+#X connect 3 0 0 0;
+#X connect 5 0 6 0;
+#X connect 6 0 19 0;
+#X connect 7 0 9 0;
+#X connect 10 0 11 0;
+#X connect 11 0 34 0;
+#X connect 12 0 15 1;
+#X connect 12 1 14 0;
+#X connect 12 2 11 1;
+#X connect 13 0 10 0;
+#X connect 14 0 10 1;
+#X connect 15 0 13 0;
+#X connect 16 0 17 0;
+#X connect 17 0 36 0;
+#X connect 18 0 31 0;
+#X connect 18 0 15 0;
+#X connect 18 0 37 0;
+#X connect 19 0 0 0;
+#X connect 20 0 8 0;
+#X connect 20 1 30 0;
+#X connect 21 0 0 0;
+#X connect 22 0 24 0;
+#X connect 23 0 28 0;
+#X connect 24 0 23 0;
+#X connect 25 0 26 0;
+#X connect 25 1 27 0;
+#X connect 25 2 22 0;
+#X connect 26 0 28 1;
+#X connect 27 0 28 2;
+#X connect 28 0 29 0;
+#X connect 30 0 21 0;
+#X connect 30 1 38 0;
+#X connect 31 0 0 0;
+#X connect 32 0 22 0;
+#X connect 33 0 32 0;
+#X connect 34 0 0 0;
+#X connect 36 0 18 0;
+#X connect 37 0 0 0;
+#X connect 38 0 0 0;
diff --git a/examples/65_2d_interactors.pd b/examples/65_2d_interactors.pd
new file mode 100644
index 0000000..8200345
--- /dev/null
+++ b/examples/65_2d_interactors.pd
@@ -0,0 +1,151 @@
+#N canvas 141 668 905 372 10;
+#X declare -lib Gem;
+#X obj 52 193 pmpd2d;
+#X obj 52 78 loadbang;
+#X obj 64 101 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#N canvas 667 329 692 614 creation 0;
+#X obj 41 20 inlet;
+#X obj 51 48 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 41 77 t b b b b b b b b b b b;
+#X msg 255 110 reset;
+#X obj 162 473 outlet;
+#X obj 162 153 until;
+#X obj 162 185 f;
+#X obj 287 230 + 1;
+#X msg 192 183 0;
+#X msg 220 418 print;
+#X obj 189 258 random 1000;
+#X obj 189 280 / 1000;
+#X obj 162 308 random 1000;
+#X obj 162 330 / 1000;
+#X msg 162 131 1000;
+#X obj 162 232 t b b f f;
+#X obj 262 323 + 1;
+#X obj 246 293 * 2;
+#X obj 162 356 pack f f f f;
+#X msg 29 383 setDEnv mobil 0.3;
+#X msg 162 381 mass mobil 1 1 \$1 \$2 \, mass fix 0 0 \$1 \$2 \, link
+RaZ \$3 \$4 0.3 0;
+#X connect 0 0 2 0;
+#X connect 1 0 2 0;
+#X connect 2 3 19 0;
+#X connect 2 9 14 0;
+#X connect 2 10 3 0;
+#X connect 2 10 8 0;
+#X connect 3 0 4 0;
+#X connect 5 0 6 0;
+#X connect 6 0 15 0;
+#X connect 7 0 6 1;
+#X connect 8 0 6 1;
+#X connect 9 0 4 0;
+#X connect 10 0 11 0;
+#X connect 11 0 18 1;
+#X connect 12 0 13 0;
+#X connect 13 0 18 0;
+#X connect 14 0 5 0;
+#X connect 15 0 12 0;
+#X connect 15 1 10 0;
+#X connect 15 2 17 0;
+#X connect 15 3 7 0;
+#X connect 16 0 18 3;
+#X connect 17 0 16 0;
+#X connect 17 0 18 2;
+#X connect 18 0 20 0;
+#X connect 19 0 4 0;
+#X connect 20 0 4 0;
+#X restore 52 126 pd creation;
+#X obj 56 21 declare -lib Gem;
+#X obj 186 77 gemhead;
+#X obj 186 100 t b;
+#X obj 54 45 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 1
+;
+#N canvas 716 693 763 327 create_gem 0;
+#X msg 137 179 0 \, destroy;
+#X obj 118 200 gemwin;
+#X obj 118 104 inlet;
+#X obj 118 129 sel 1 0;
+#X msg 118 156 reset \, create \, 1;
+#X connect 0 0 1 0;
+#X connect 2 0 3 0;
+#X connect 3 0 4 0;
+#X connect 3 1 0 0;
+#X connect 4 0 1 0;
+#X restore 75 45 pd create_gem;
+#N canvas 1161 473 413 534 gemmouse 0;
+#X obj 65 218 outlet;
+#X obj 90 140 + 1;
+#X obj 60 43 gemmouse 1 -1;
+#X obj 63 162 pack 0 0;
+#X msg 61 186 \$1 \$2;
+#X obj 64 113 spigot 0;
+#X connect 1 0 3 1;
+#X connect 2 0 5 0;
+#X connect 2 1 1 0;
+#X connect 2 2 5 1;
+#X connect 3 0 4 0;
+#X connect 4 0 0 0;
+#X connect 5 0 3 0;
+#X restore 188 148 pd gemmouse;
+#X obj 52 216 route massPos;
+#N canvas 1023 474 425 448 mass_render 0;
+#X obj 148 49 inlet;
+#X obj 67 285 separator;
+#X obj 67 224 gemhead 45;
+#X obj 67 116 loadbang;
+#X msg 67 174 0;
+#X obj 68 246 scaleXYZ 8 8 0;
+#X obj 68 265 translateXYZ -0.5 -0.5 0;
+#X obj 146 73 route mobil;
+#X obj 146 102 unpack f f f;
+#X obj 140 124 t b;
+#X obj 67 311 translateXYZ;
+#X obj 67 340 circle 0.01;
+#X connect 0 0 7 0;
+#X connect 1 0 10 0;
+#X connect 2 0 5 0;
+#X connect 3 0 4 0;
+#X connect 4 0 2 0;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 8 0;
+#X connect 8 0 9 0;
+#X connect 8 1 10 1;
+#X connect 8 2 10 2;
+#X connect 9 0 2 0;
+#X connect 10 0 11 0;
+#X restore 52 237 pd mass_render;
+#X msg 187 122 bang \, massPos mobil;
+#X msg 188 170 iLine mobil \$1 \$2 0.5 0.5 0.1 1 0 0.3;
+#X msg 485 71 set iCircle mobil \, adddollar 1 \, adddollar 2 \, add2
+0 0 1 0.01 1 0 0.2;
+#X msg 486 108 set iCircle mobil \, adddollar 1 \, adddollar 2 \, add2
+0.2 0.05 1 0 1 -0.2 0;
+#X msg 487 149 set iCircle mobil \, adddollar 1 \, adddollar 2 \, add2
+1 -0.005 1 0 1 -1 0;
+#X msg 488 191 set iCircle mobil \, adddollar 1 \, adddollar 2 \, add2
+0.4 0.051 1 0 1 -0.3 0.1;
+#X msg 488 231 set iLine mobil \, adddollar 1 \, adddollar 2 \, add2
+0.5 0.5 0.1 1 0 0.3;
+#X msg 488 271 set iLine mobil \, adddollar 1 \, adddollar 2 \, add2
+0 0 -0.1 1 -0.1 0.1;
+#X text 483 12 select an interactor and clik-drag the mouse on the
+gem windows to see the effect.;
+#X connect 0 0 10 0;
+#X connect 1 0 3 0;
+#X connect 2 0 3 0;
+#X connect 3 0 0 0;
+#X connect 5 0 6 0;
+#X connect 6 0 12 0;
+#X connect 7 0 8 0;
+#X connect 9 0 13 0;
+#X connect 10 0 11 0;
+#X connect 12 0 0 0;
+#X connect 13 0 0 0;
+#X connect 14 0 13 0;
+#X connect 15 0 13 0;
+#X connect 16 0 13 0;
+#X connect 17 0 13 0;
+#X connect 18 0 13 0;
+#X connect 19 0 13 0;