aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--msd2D/01_msd2Dtest.pd199
-rw-r--r--msd2D/02_msd2Dadd.pd748
-rw-r--r--msd2D/03_imsd2Dtest.pd172
-rw-r--r--msd2D/04_msd2Dperf.pd247
-rw-r--r--msd2D/05_msd2DDataStruct.pd209
-rw-r--r--msd2D/make_anim.pd62
6 files changed, 807 insertions, 830 deletions
diff --git a/msd2D/01_msd2Dtest.pd b/msd2D/01_msd2Dtest.pd
index 718310b..91c6ddf 100644
--- a/msd2D/01_msd2Dtest.pd
+++ b/msd2D/01_msd2Dtest.pd
@@ -1,47 +1,20 @@
-#N canvas 552 22 843 838 10;
-#X obj 52 15 loadbang;
-#X obj 314 524 print msd;
-#X obj 633 647 gemwin;
-#X msg 633 625 0 \, destroy;
-#X obj 554 709 gemhead;
-#X obj 554 732 world_light;
-#X msg 633 562 reset \, create \, lighting 1 \, 1;
-#X obj 53 499 msd2D --------------------------------;
-#X text 309 594 WITH GEM;
-#X text 465 563 1 CREATE WINDOW -->;
-#X text 464 626 3 AND DESTROY IT! -->;
-#X text 464 594 2 DRAG THE STRUCTURE WITH THE MOUSE;
-#X obj 118 11 cnv 15 520 275 empty empty empty 20 12 0 14 -262131 -66577
-0;
-#X obj 43 291 cnv 15 595 80 empty empty empty 20 12 0 14 -261689 -66577
-0;
-#X obj 44 374 cnv 15 595 120 empty empty empty 20 12 0 14 -262131 -66577
-0;
-#X obj 47 556 cnv 15 400 200 empty empty empty 20 12 0 14 -261689 -66577
-0;
-#X obj 135 261 t a;
-#X obj 135 20 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262131 -1
+#N canvas 520 22 626 507 10;
+#X obj 27 26 loadbang;
+#X obj 110 419 print msd;
+#X obj 369 155 gemwin;
+#X msg 384 132 0 \, destroy;
+#X text 260 26 2 DRAG THE STRUCTURE WITH THE MOUSE;
+#X obj 87 27 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
-#X msg 207 71 reset;
-#X text 173 21 reset;
-#X obj 135 42 t b b b b b;
-#X msg 153 181 Xmax 100 \, Xmin 0 \, Ymax 100 \, Ymin 0;
-#X text 413 87 CREATION : 3 MASSES \, 2 LINKS;
+#X msg 90 76 reset;
+#X obj 27 47 t b b b b b;
+#X msg 42 186 Xmax 100 \, Xmin 0 \, Ymax 100 \, Ymin 0;
#X obj 53 300 gemhead;
#X obj 53 323 t b;
#X msg 53 345 bang \, get massesPos \, get linksPos;
-#X text 292 313 COMPUTE AND GET ALL MASSES AND LINKS POSITIONS;
-#X msg 216 384 setK souple 1;
-#X msg 85 403 setD souple 1;
-#X msg 216 404 setK souple 2;
-#X text 367 442 ADD FORCE ON ALL MOBILE MASSES;
-#X text 351 396 SET RIGIDITY AND VISCOSITY OF LINKS;
-#X msg 82 442 forceX mob 100;
-#X msg 208 443 forceY mob 100;
#N canvas 643 123 609 594 massrender 0;
#X obj 127 22 inlet;
#X obj 48 203 translateXYZ;
-#X obj 48 229 sphere 0.1;
#X obj 127 86 / 12.5;
#X obj 127 109 - 4;
#X obj 192 87 / 12.5;
@@ -52,23 +25,23 @@
#X obj 48 141 gemhead 45;
#X msg 48 104 0;
#X obj 47 58 loadbang;
-#X connect 0 0 9 0;
-#X connect 1 0 2 0;
-#X connect 3 0 4 0;
-#X connect 4 0 8 0;
-#X connect 5 0 6 0;
-#X connect 6 0 1 2;
-#X connect 7 0 1 0;
-#X connect 8 0 10 0;
-#X connect 8 1 1 1;
-#X connect 9 1 3 0;
-#X connect 9 2 5 0;
-#X connect 10 0 7 0;
+#X obj 48 229 circle 0.1;
+#X connect 0 0 8 0;
+#X connect 1 0 12 0;
+#X connect 2 0 3 0;
+#X connect 3 0 7 0;
+#X connect 4 0 5 0;
+#X connect 5 0 1 2;
+#X connect 6 0 1 0;
+#X connect 7 0 9 0;
+#X connect 7 1 1 1;
+#X connect 8 1 2 0;
+#X connect 8 2 4 0;
+#X connect 9 0 6 0;
+#X connect 10 0 9 0;
#X connect 11 0 10 0;
-#X connect 12 0 11 0;
-#X restore 134 591 pd massrender;
-#X obj 53 562 route linksPos massesPos;
-#X text 261 572 DISPLAY MASSES AND LINKS;
+#X restore 436 267 pd massrender;
+#X obj 366 244 route linksPos massesPos;
#N canvas 731 296 458 308 gemmouse 0;
#X obj 189 77 gemmouse;
#X obj 189 184 pack f f;
@@ -79,29 +52,26 @@
#X obj 189 108 / 5;
#X obj 216 108 / -5;
#X obj 79 51 inlet;
-#X obj 140 75 inlet;
#X obj 109 98 t b;
#X obj 141 120 list;
+#X obj 141 41 r mouse_init;
#X connect 0 0 6 0;
#X connect 0 1 7 0;
#X connect 0 2 2 1;
#X connect 1 0 2 0;
-#X connect 2 0 11 1;
+#X connect 2 0 10 1;
#X connect 4 0 1 0;
#X connect 5 0 1 1;
#X connect 6 0 4 0;
#X connect 7 0 5 0;
-#X connect 8 0 10 0;
-#X connect 9 0 11 1;
-#X connect 10 0 11 0;
-#X connect 11 0 3 0;
-#X restore 53 674 pd gemmouse;
-#X obj 53 653 gemhead;
-#X msg 53 695 posX fix \$1;
-#X msg 53 716 posY fix \$2;
-#X text 204 677 SET FIXED MASS TO MOUSE POSITION;
-#X msg 171 134 mass mob 1 \$1 \$2 \$3;
-#X msg 171 113 100 50 90 \, 100 40 10;
+#X connect 8 0 9 0;
+#X connect 9 0 10 0;
+#X connect 10 0 3 0;
+#X connect 11 0 10 1;
+#X restore 366 356 pd gemmouse;
+#X obj 366 335 gemhead;
+#X msg 366 377 posX fix \$1;
+#X msg 366 398 posY fix \$2;
#N canvas 0 22 454 304 linkrender 0;
#X obj 127 22 inlet;
#X obj 127 86 / 12.5;
@@ -142,48 +112,57 @@
#X connect 15 0 5 0;
#X connect 16 0 17 0;
#X connect 17 0 15 0;
-#X restore 53 613 pd linkrender;
-#X msg 153 160 50 50;
-#X msg 189 91 mass fix 0 100 50 50;
-#X msg 85 383 setD souple 0;
-#X msg 135 226 link souple \$1 \$2 \$3 \$4;
-#X msg 135 205 0 1 10 10 \, 1 2 10 10;
-#X connect 0 0 20 0;
+#X restore 366 289 pd linkrender;
+#X msg 194 139 50 50;
+#X msg 74 96 mass fix 0 100 50 50;
+#X obj 90 259 s msdin;
+#X msg 58 139 mass mob 1 100 \$1 \$2;
+#X obj 84 373 r msdin;
+#X msg 58 118 40 60 \, 60 60 \, 60 40 \, 40 40;
+#X obj 194 162 s mouse_init;
+#X msg 27 207 link souple mob mob 10 5;
+#X msg 27 230 link souple fix mob 10 5;
+#X text 25 1 creation : 5 masses and 20 links;
+#X text 52 281 compute and get masses and links positions;
+#X obj 53 397 msd2D;
+#X obj 52 419 s msdout;
+#X obj 365 423 s msdin;
+#X obj 366 218 r msdout;
+#X text 364 315 move mass to mouse position;
+#X text 365 197 display masses with gem;
+#X msg 369 109 reset \, create \, 1;
+#X text 261 6 1 CREATE WINDOW;
+#X text 108 26 reset struct;
+#X connect 0 0 7 0;
#X connect 3 0 2 0;
-#X connect 4 0 5 0;
-#X connect 6 0 2 0;
-#X connect 7 0 35 0;
-#X connect 7 1 1 0;
-#X connect 16 0 7 0;
-#X connect 17 0 20 0;
-#X connect 18 0 16 0;
-#X connect 20 0 49 0;
-#X connect 20 1 45 0;
-#X connect 20 1 21 0;
-#X connect 20 2 43 0;
-#X connect 20 3 46 0;
-#X connect 20 4 18 0;
-#X connect 21 0 16 0;
-#X connect 23 0 24 0;
-#X connect 24 0 25 0;
-#X connect 25 0 7 0;
-#X connect 27 0 7 0;
-#X connect 28 0 7 0;
-#X connect 29 0 7 0;
-#X connect 32 0 7 0;
-#X connect 33 0 7 0;
-#X connect 35 0 44 0;
-#X connect 35 1 34 0;
-#X connect 35 2 1 0;
-#X connect 37 0 39 0;
-#X connect 37 0 40 0;
-#X connect 38 0 37 0;
-#X connect 39 0 7 0;
-#X connect 40 0 7 0;
-#X connect 42 0 16 0;
-#X connect 43 0 42 0;
-#X connect 45 0 37 1;
-#X connect 46 0 16 0;
-#X connect 47 0 7 0;
-#X connect 48 0 16 0;
-#X connect 49 0 48 0;
+#X connect 5 0 7 0;
+#X connect 6 0 21 0;
+#X connect 7 0 26 0;
+#X connect 7 1 19 0;
+#X connect 7 1 8 0;
+#X connect 7 2 24 0;
+#X connect 7 3 20 0;
+#X connect 7 4 6 0;
+#X connect 8 0 21 0;
+#X connect 9 0 10 0;
+#X connect 10 0 11 0;
+#X connect 11 0 30 0;
+#X connect 13 0 18 0;
+#X connect 13 1 12 0;
+#X connect 14 0 16 0;
+#X connect 14 0 17 0;
+#X connect 15 0 14 0;
+#X connect 16 0 32 0;
+#X connect 17 0 32 0;
+#X connect 19 0 25 0;
+#X connect 20 0 21 0;
+#X connect 22 0 21 0;
+#X connect 23 0 30 0;
+#X connect 24 0 22 0;
+#X connect 26 0 27 0;
+#X connect 26 0 21 0;
+#X connect 27 0 21 0;
+#X connect 30 0 31 0;
+#X connect 30 1 1 0;
+#X connect 33 0 13 0;
+#X connect 36 0 2 0;
diff --git a/msd2D/02_msd2Dadd.pd b/msd2D/02_msd2Dadd.pd
index ab91f09..8dbc071 100644
--- a/msd2D/02_msd2Dadd.pd
+++ b/msd2D/02_msd2Dadd.pd
@@ -1,348 +1,223 @@
-#N canvas 572 22 720 780 10;
-#X obj 137 211 t a;
-#X obj 137 39 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+#N canvas 572 22 686 162 10;
+#X obj 22 16 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
-#X msg 195 86 reset;
-#X obj 52 15 loadbang;
-#X obj 313 571 print msd;
-#X obj 52 549 msd2D --------------------------------;
-#X msg 448 219 0 \, destroy;
-#X obj 539 576 gemhead;
-#X obj 539 599 world_light;
#N canvas 177 95 954 737 synthese 0;
-#X obj 267 9 inlet;
-#X msg -35 224 \$1 50;
-#X obj -35 246 line~;
-#X obj -75 250 *~;
-#X msg 60 224 \$1 50;
-#X obj 60 246 line~;
-#X obj 20 250 *~;
-#X msg 153 226 \$1 50;
-#X obj 153 248 line~;
-#X obj 113 252 *~;
-#X msg 245 224 \$1 50;
-#X obj 245 246 line~;
-#X obj 205 250 *~;
-#X obj 62 298 dac~;
-#X msg 346 227 \$1 50;
-#X obj 346 249 line~;
-#X obj 306 253 *~;
-#X msg 441 227 \$1 50;
-#X obj 441 249 line~;
-#X obj 401 253 *~;
-#X msg 534 229 \$1 50;
-#X obj 534 251 line~;
-#X obj 494 255 *~;
-#X msg 626 227 \$1 50;
-#X obj 626 249 line~;
-#X obj 586 253 *~;
-#X obj 443 301 dac~;
-#X obj -77 194 osc~ 55;
-#X obj 19 194 osc~ 110;
-#X obj 204 195 osc~ 222;
-#X obj -13 128 unpack f f;
-#X obj 176 134 unpack f f;
-#X obj 362 131 unpack f f;
-#X obj 553 138 unpack f f;
-#X msg -45 428 \$1 50;
-#X obj -45 450 line~;
-#X obj -85 454 *~;
-#X msg 50 428 \$1 50;
-#X obj 50 450 line~;
-#X obj 10 454 *~;
-#X msg 143 430 \$1 50;
-#X obj 143 452 line~;
-#X obj 103 456 *~;
-#X msg 235 428 \$1 50;
-#X obj 235 450 line~;
-#X obj 195 454 *~;
-#X obj 52 502 dac~;
-#X msg 336 431 \$1 50;
-#X obj 336 453 line~;
-#X obj 296 457 *~;
-#X msg 431 431 \$1 50;
-#X obj 431 453 line~;
-#X obj 391 457 *~;
-#X msg 524 433 \$1 50;
-#X obj 524 455 line~;
-#X obj 484 459 *~;
-#X msg 616 431 \$1 50;
-#X obj 616 453 line~;
-#X obj 576 457 *~;
-#X obj 433 505 dac~;
-#X obj 483 403 osc~ 1113;
-#X obj 575 401 osc~ 2229;
-#X obj -15 343 unpack f f;
-#X obj 166 338 unpack f f;
-#X obj 352 335 unpack f f;
-#X obj 543 342 unpack f f;
-#X obj 112 196 osc~ 165;
-#X obj 305 197 osc~ 267;
-#X obj 400 197 osc~ 311;
-#X obj 268 44 route 1 5 9 13 17 21 25 29;
-#X obj 493 199 osc~ 366;
-#X obj 585 197 osc~ 421;
-#X obj -87 398 osc~ 444;
-#X obj 9 398 osc~ 554;
-#X obj 102 400 osc~ 664;
-#X obj 194 398 osc~ 776;
-#X obj 295 401 osc~ 888;
-#X obj 390 401 osc~ 1000;
-#X obj -75 368 / 20;
-#X obj 52 374 / 20;
-#X obj 144 376 / 20;
-#X obj 240 374 / 50;
-#X obj 307 371 / 50;
-#X obj 434 377 / 50;
-#X obj 524 379 / 100;
-#X obj 621 377 / 100;
-#X obj 631 173 / 100;
-#X obj 532 176 / 100;
-#X obj 444 174 / 50;
-#X obj 317 167 / 50;
-#X obj 250 170 / 50;
-#X obj 153 172 / 20;
-#X obj 61 171 / 20;
-#X obj -64 164 / 20;
-#X connect 0 0 69 0;
-#X connect 1 0 2 0;
-#X connect 2 0 3 1;
-#X connect 3 0 13 0;
-#X connect 4 0 5 0;
-#X connect 5 0 6 1;
-#X connect 6 0 13 0;
-#X connect 6 0 13 1;
-#X connect 7 0 8 0;
-#X connect 8 0 9 1;
-#X connect 9 0 13 0;
-#X connect 9 0 13 1;
-#X connect 10 0 11 0;
+#X msg -35 254 \$1 50;
+#X obj -35 276 line~;
+#X obj -75 280 *~;
+#X msg 60 254 \$1 50;
+#X obj 60 276 line~;
+#X obj 20 280 *~;
+#X msg 153 256 \$1 50;
+#X obj 153 278 line~;
+#X obj 113 282 *~;
+#X msg 245 254 \$1 50;
+#X obj 245 276 line~;
+#X obj 205 280 *~;
+#X obj 62 328 dac~;
+#X msg 346 257 \$1 50;
+#X obj 346 279 line~;
+#X obj 306 283 *~;
+#X msg 441 257 \$1 50;
+#X obj 441 279 line~;
+#X obj 401 283 *~;
+#X msg 534 259 \$1 50;
+#X obj 534 281 line~;
+#X obj 494 285 *~;
+#X msg 626 257 \$1 50;
+#X obj 626 279 line~;
+#X obj 586 283 *~;
+#X obj 443 331 dac~;
+#X obj -77 224 osc~ 55;
+#X obj 19 224 osc~ 110;
+#X obj 204 225 osc~ 222;
+#X obj -13 158 unpack f f;
+#X obj 176 164 unpack f f;
+#X obj 362 161 unpack f f;
+#X obj 553 168 unpack f f;
+#X msg -45 458 \$1 50;
+#X obj -45 480 line~;
+#X obj -85 484 *~;
+#X msg 50 458 \$1 50;
+#X obj 50 480 line~;
+#X obj 10 484 *~;
+#X msg 143 460 \$1 50;
+#X obj 143 482 line~;
+#X obj 103 486 *~;
+#X msg 235 458 \$1 50;
+#X obj 235 480 line~;
+#X obj 195 484 *~;
+#X obj 52 532 dac~;
+#X msg 336 461 \$1 50;
+#X obj 336 483 line~;
+#X obj 296 487 *~;
+#X msg 431 461 \$1 50;
+#X obj 431 483 line~;
+#X obj 391 487 *~;
+#X msg 524 463 \$1 50;
+#X obj 524 485 line~;
+#X obj 484 489 *~;
+#X msg 616 461 \$1 50;
+#X obj 616 483 line~;
+#X obj 576 487 *~;
+#X obj 433 535 dac~;
+#X obj 483 433 osc~ 1113;
+#X obj 575 431 osc~ 2229;
+#X obj -15 373 unpack f f;
+#X obj 166 368 unpack f f;
+#X obj 352 365 unpack f f;
+#X obj 543 372 unpack f f;
+#X obj 112 226 osc~ 165;
+#X obj 305 227 osc~ 267;
+#X obj 400 227 osc~ 311;
+#X obj 268 74 route 1 5 9 13 17 21 25 29;
+#X obj 493 229 osc~ 366;
+#X obj 585 227 osc~ 421;
+#X obj -87 428 osc~ 444;
+#X obj 9 428 osc~ 554;
+#X obj 102 430 osc~ 664;
+#X obj 194 428 osc~ 776;
+#X obj 295 431 osc~ 888;
+#X obj 390 431 osc~ 1000;
+#X obj -75 398 / 20;
+#X obj 52 404 / 20;
+#X obj 144 406 / 20;
+#X obj 240 404 / 50;
+#X obj 307 401 / 50;
+#X obj 434 407 / 50;
+#X obj 524 409 / 100;
+#X obj 621 407 / 100;
+#X obj 631 203 / 100;
+#X obj 532 206 / 100;
+#X obj 444 204 / 50;
+#X obj 317 197 / 50;
+#X obj 250 200 / 50;
+#X obj 153 202 / 20;
+#X obj 61 201 / 20;
+#X obj -64 194 / 20;
+#X obj 268 49 route massesSpeedsNo;
+#X obj 268 27 r \$0-msdout;
+#X connect 0 0 1 0;
+#X connect 1 0 2 1;
+#X connect 2 0 12 0;
+#X connect 3 0 4 0;
+#X connect 4 0 5 1;
+#X connect 5 0 12 0;
+#X connect 5 0 12 1;
+#X connect 6 0 7 0;
+#X connect 7 0 8 1;
+#X connect 8 0 12 0;
+#X connect 8 0 12 1;
+#X connect 9 0 10 0;
+#X connect 10 0 11 1;
#X connect 11 0 12 1;
-#X connect 12 0 13 1;
-#X connect 14 0 15 0;
-#X connect 15 0 16 1;
-#X connect 16 0 26 0;
-#X connect 17 0 18 0;
-#X connect 18 0 19 1;
-#X connect 19 0 26 0;
-#X connect 19 0 26 1;
-#X connect 20 0 21 0;
-#X connect 21 0 22 1;
-#X connect 22 0 26 0;
-#X connect 22 0 26 1;
-#X connect 23 0 24 0;
+#X connect 13 0 14 0;
+#X connect 14 0 15 1;
+#X connect 15 0 25 0;
+#X connect 16 0 17 0;
+#X connect 17 0 18 1;
+#X connect 18 0 25 0;
+#X connect 18 0 25 1;
+#X connect 19 0 20 0;
+#X connect 20 0 21 1;
+#X connect 21 0 25 0;
+#X connect 21 0 25 1;
+#X connect 22 0 23 0;
+#X connect 23 0 24 1;
#X connect 24 0 25 1;
-#X connect 25 0 26 1;
-#X connect 27 0 3 0;
-#X connect 28 0 6 0;
-#X connect 29 0 12 0;
-#X connect 30 0 93 0;
-#X connect 30 1 92 0;
-#X connect 31 0 91 0;
-#X connect 31 1 90 0;
-#X connect 32 0 89 0;
-#X connect 32 1 88 0;
-#X connect 33 0 87 0;
-#X connect 33 1 86 0;
-#X connect 34 0 35 0;
-#X connect 35 0 36 1;
-#X connect 36 0 46 0;
-#X connect 37 0 38 0;
-#X connect 38 0 39 1;
-#X connect 39 0 46 0;
-#X connect 39 0 46 1;
-#X connect 40 0 41 0;
-#X connect 41 0 42 1;
-#X connect 42 0 46 0;
-#X connect 42 0 46 1;
-#X connect 43 0 44 0;
+#X connect 26 0 2 0;
+#X connect 27 0 5 0;
+#X connect 28 0 11 0;
+#X connect 29 0 92 0;
+#X connect 29 1 91 0;
+#X connect 30 0 90 0;
+#X connect 30 1 89 0;
+#X connect 31 0 88 0;
+#X connect 31 1 87 0;
+#X connect 32 0 86 0;
+#X connect 32 1 85 0;
+#X connect 33 0 34 0;
+#X connect 34 0 35 1;
+#X connect 35 0 45 0;
+#X connect 36 0 37 0;
+#X connect 37 0 38 1;
+#X connect 38 0 45 0;
+#X connect 38 0 45 1;
+#X connect 39 0 40 0;
+#X connect 40 0 41 1;
+#X connect 41 0 45 0;
+#X connect 41 0 45 1;
+#X connect 42 0 43 0;
+#X connect 43 0 44 1;
#X connect 44 0 45 1;
-#X connect 45 0 46 1;
-#X connect 47 0 48 0;
-#X connect 48 0 49 1;
-#X connect 49 0 59 0;
-#X connect 50 0 51 0;
-#X connect 51 0 52 1;
-#X connect 52 0 59 0;
-#X connect 52 0 59 1;
-#X connect 53 0 54 0;
-#X connect 54 0 55 1;
-#X connect 55 0 59 0;
-#X connect 55 0 59 1;
-#X connect 56 0 57 0;
+#X connect 46 0 47 0;
+#X connect 47 0 48 1;
+#X connect 48 0 58 0;
+#X connect 49 0 50 0;
+#X connect 50 0 51 1;
+#X connect 51 0 58 0;
+#X connect 51 0 58 1;
+#X connect 52 0 53 0;
+#X connect 53 0 54 1;
+#X connect 54 0 58 0;
+#X connect 54 0 58 1;
+#X connect 55 0 56 0;
+#X connect 56 0 57 1;
#X connect 57 0 58 1;
-#X connect 58 0 59 1;
-#X connect 60 0 55 0;
-#X connect 61 0 58 0;
-#X connect 62 0 78 0;
-#X connect 62 1 79 0;
-#X connect 63 0 80 0;
-#X connect 63 1 81 0;
-#X connect 64 0 82 0;
-#X connect 64 1 83 0;
-#X connect 65 0 84 0;
-#X connect 65 1 85 0;
-#X connect 66 0 9 0;
-#X connect 67 0 16 0;
-#X connect 68 0 19 0;
-#X connect 69 0 30 0;
-#X connect 69 1 31 0;
-#X connect 69 2 32 0;
-#X connect 69 3 33 0;
-#X connect 69 4 62 0;
-#X connect 69 5 63 0;
-#X connect 69 6 64 0;
-#X connect 69 7 65 0;
-#X connect 70 0 22 0;
-#X connect 71 0 25 0;
-#X connect 72 0 36 0;
-#X connect 73 0 39 0;
-#X connect 74 0 42 0;
-#X connect 75 0 45 0;
-#X connect 76 0 49 0;
-#X connect 77 0 52 0;
-#X connect 78 0 34 0;
-#X connect 79 0 37 0;
-#X connect 80 0 40 0;
-#X connect 81 0 43 0;
-#X connect 82 0 47 0;
-#X connect 83 0 50 0;
-#X connect 84 0 53 0;
-#X connect 85 0 56 0;
-#X connect 86 0 23 0;
-#X connect 87 0 20 0;
-#X connect 88 0 17 0;
-#X connect 89 0 14 0;
-#X connect 90 0 10 0;
-#X connect 91 0 7 0;
-#X connect 92 0 4 0;
-#X connect 93 0 1 0;
-#X restore 230 645 pd synthese;
-#X obj 374 461 gemhead;
+#X connect 59 0 54 0;
+#X connect 60 0 57 0;
+#X connect 61 0 77 0;
+#X connect 61 1 78 0;
+#X connect 62 0 79 0;
+#X connect 62 1 80 0;
+#X connect 63 0 81 0;
+#X connect 63 1 82 0;
+#X connect 64 0 83 0;
+#X connect 64 1 84 0;
+#X connect 65 0 8 0;
+#X connect 66 0 15 0;
+#X connect 67 0 18 0;
+#X connect 68 0 29 0;
+#X connect 68 1 30 0;
+#X connect 68 2 31 0;
+#X connect 68 3 32 0;
+#X connect 68 4 61 0;
+#X connect 68 5 62 0;
+#X connect 68 6 63 0;
+#X connect 68 7 64 0;
+#X connect 69 0 21 0;
+#X connect 70 0 24 0;
+#X connect 71 0 35 0;
+#X connect 72 0 38 0;
+#X connect 73 0 41 0;
+#X connect 74 0 44 0;
+#X connect 75 0 48 0;
+#X connect 76 0 51 0;
+#X connect 77 0 33 0;
+#X connect 78 0 36 0;
+#X connect 79 0 39 0;
+#X connect 80 0 42 0;
+#X connect 81 0 46 0;
+#X connect 82 0 49 0;
+#X connect 83 0 52 0;
+#X connect 84 0 55 0;
+#X connect 85 0 22 0;
+#X connect 86 0 19 0;
+#X connect 87 0 16 0;
+#X connect 88 0 13 0;
+#X connect 89 0 9 0;
+#X connect 90 0 6 0;
+#X connect 91 0 3 0;
+#X connect 92 0 0 0;
+#X connect 93 0 68 0;
+#X connect 94 0 93 0;
+#X restore 23 107 pd synthese;
+#X text 40 16 Reset;
+#N canvas 0 22 450 300 structure_creation 0;
+#X msg 195 86 reset;
+#X obj 52 15 loadbang;
#X msg 156 145 Xmax 100 \, Xmin 0 \, Ymax 100 \, Ymin 0;
-#X msg 448 196 reset \, create \, lighting 1 \, 1;
-#X obj 52 399 t b;
-#N canvas 643 123 617 602 massrender 0;
-#X obj 127 22 inlet;
-#X obj 62 267 translateXYZ;
-#X obj 166 123 / 12.5;
-#X obj 166 146 - 4;
-#X obj 231 124 / 12.5;
-#X obj 231 147 - 4;
-#X obj 62 241 separator;
-#X obj 127 57 unpack f f f;
-#X msg 128 194 \$1;
-#X obj 62 314 sphere 0.1;
-#X obj 62 219 colorRGB 1 1 1;
-#X obj 128 174 / 29;
-#X obj 127 85 t b f;
-#X obj 62 135 gemhead 45;
-#X obj 62 63 loadbang;
-#X msg 62 93 0;
-#X connect 0 0 7 0;
-#X connect 1 0 9 0;
-#X connect 2 0 3 0;
-#X connect 3 0 1 1;
-#X connect 4 0 5 0;
-#X connect 5 0 1 2;
-#X connect 6 0 1 0;
-#X connect 7 0 12 0;
-#X connect 7 1 2 0;
-#X connect 7 2 4 0;
-#X connect 8 0 10 2;
-#X connect 8 0 10 3;
-#X connect 10 0 6 0;
-#X connect 11 0 8 0;
-#X connect 12 0 13 0;
-#X connect 12 1 11 0;
-#X connect 13 0 10 0;
-#X connect 14 0 15 0;
-#X connect 15 0 13 0;
-#X restore 141 623 pd massrender;
-#N canvas 284 227 595 566 linkrender 0;
-#X obj 261 87 inlet;
-#X obj 261 179 / 12.5;
-#X obj 261 202 - 4;
-#X obj 315 180 / 12.5;
-#X obj 315 203 - 4;
-#X obj 189 288 separator;
-#X obj 261 226 t b f;
-#X obj 189 331 curve 2;
-#X obj 375 183 / 12.5;
-#X obj 375 206 - 4;
-#X obj 429 184 / 12.5;
-#X obj 429 207 - 4;
-#X obj 291 256 pack f f;
-#X msg 291 279 \$1 \$2 0;
-#X obj 375 255 pack f f;
-#X msg 375 278 \$1 \$2 0;
-#X obj 261 131 unpack f f f f f;
-#X obj 189 310 colorRGB 1 1 1;
-#X obj 189 262 gemhead 45;
-#X obj 189 180 loadbang;
-#X msg 189 229 0;
-#X connect 0 0 16 0;
-#X connect 1 0 2 0;
-#X connect 2 0 6 0;
-#X connect 3 0 4 0;
-#X connect 4 0 12 1;
-#X connect 5 0 17 0;
-#X connect 6 0 18 0;
-#X connect 6 1 12 0;
-#X connect 8 0 9 0;
-#X connect 9 0 14 0;
-#X connect 10 0 11 0;
-#X connect 11 0 14 1;
-#X connect 12 0 13 0;
-#X connect 13 0 7 1;
-#X connect 14 0 15 0;
-#X connect 15 0 7 2;
-#X connect 16 1 1 0;
-#X connect 16 2 3 0;
-#X connect 16 3 8 0;
-#X connect 16 4 10 0;
-#X connect 17 0 7 0;
-#X connect 18 0 5 0;
-#X connect 19 0 20 0;
-#X connect 20 0 18 0;
-#X restore 52 644 pd linkrender;
-#X obj 52 359 gemhead;
-#X obj 448 240 gemwin;
-#X text 175 41 Reset;
-#X text 281 106 Random positions and masses;
-#X text 304 195 1 Create window -->;
-#X text 225 464 Add force;
-#X msg 446 268 \; pd dsp 1;
-#X text 320 274 2 SET DSP ON -->;
-#N canvas 311 224 413 534 gemmouse2 0;
-#X obj 114 29 gemmouse;
-#X obj 96 266 outlet;
-#X obj 114 83 - 0;
-#X obj 165 97 + 100;
-#X obj 114 60 / 5;
-#X obj 165 74 / -5;
-#X obj 32 81 t b;
-#X obj 32 37 inlet;
-#X obj 96 177 f;
-#X obj 96 206 pack 0 0 0;
-#X connect 0 0 4 0;
-#X connect 0 1 5 0;
-#X connect 0 2 9 2;
-#X connect 2 0 8 1;
-#X connect 3 0 9 1;
-#X connect 4 0 2 0;
-#X connect 5 0 3 0;
-#X connect 6 0 8 0;
-#X connect 7 0 6 0;
-#X connect 8 0 9 0;
-#X connect 9 0 1 0;
-#X restore 374 483 pd gemmouse2;
-#X msg 374 506 grabMass \$1 \$2 \$3;
-#X obj 52 594 route linksPos massesPos massesSpeedsNo;
-#X msg 52 420 bang \, get massesPos \, get linksPos \, get massesSpeeds
-1 5 9 13 17 21 25 29;
-#X text 130 679 Move red masses for bass and white ones for high tones...
-;
+#X text 238 112 Random positions and masses;
#N canvas 557 309 487 357 masses 0;
#X msg 245 215 mass mob 1 \$1 \$2 \$3;
#X obj 417 165 random 100;
@@ -419,33 +294,170 @@
#X connect 11 0 3 0;
#X restore 137 176 pd links;
#X obj 137 62 t b b b b;
-#X text 491 431 Get a few masses speeds;
-#X msg 94 458 forceX mob 100;
-#X msg 95 484 forceX mob -100;
-#X connect 0 0 5 0;
-#X connect 1 0 31 0;
-#X connect 2 0 0 0;
-#X connect 3 0 31 0;
-#X connect 5 0 26 0;
-#X connect 5 1 4 0;
-#X connect 6 0 17 0;
-#X connect 7 0 8 0;
-#X connect 10 0 24 0;
-#X connect 11 0 0 0;
-#X connect 12 0 17 0;
-#X connect 13 0 27 0;
-#X connect 16 0 13 0;
-#X connect 24 0 25 0;
-#X connect 25 0 5 0;
-#X connect 26 0 15 0;
-#X connect 26 1 14 0;
-#X connect 26 2 9 0;
-#X connect 27 0 5 0;
-#X connect 29 0 0 0;
-#X connect 30 0 0 0;
-#X connect 31 0 30 0;
-#X connect 31 1 11 0;
-#X connect 31 2 29 0;
-#X connect 31 3 2 0;
-#X connect 33 0 5 0;
-#X connect 34 0 5 0;
+#X obj 137 15 inlet;
+#X obj 137 211 s \$0-msdin;
+#X connect 0 0 8 0;
+#X connect 1 0 6 0;
+#X connect 2 0 8 0;
+#X connect 4 0 8 0;
+#X connect 5 0 8 0;
+#X connect 6 0 5 0;
+#X connect 6 1 2 0;
+#X connect 6 2 4 0;
+#X connect 6 3 0 0;
+#X connect 7 0 6 0;
+#X restore 22 39 pd structure_creation;
+#N canvas 0 22 763 327 gem_stuff 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 obj 274 105 gemhead;
+#N canvas 311 224 413 534 gemmouse2 0;
+#X obj 114 29 gemmouse;
+#X obj 96 266 outlet;
+#X obj 114 83 - 0;
+#X obj 165 97 + 100;
+#X obj 114 60 / 5;
+#X obj 165 74 / -5;
+#X obj 32 81 t b;
+#X obj 32 37 inlet;
+#X obj 96 177 f;
+#X obj 96 206 pack 0 0 0;
+#X connect 0 0 4 0;
+#X connect 0 1 5 0;
+#X connect 0 2 9 2;
+#X connect 2 0 8 1;
+#X connect 3 0 9 1;
+#X connect 4 0 2 0;
+#X connect 5 0 3 0;
+#X connect 6 0 8 0;
+#X connect 7 0 6 0;
+#X connect 8 0 9 0;
+#X connect 9 0 1 0;
+#X restore 274 127 pd gemmouse2;
+#X msg 274 150 grabMass \$1 \$2 \$3;
+#N canvas 643 123 617 602 massrender 0;
+#X obj 127 22 inlet;
+#X obj 62 267 translateXYZ;
+#X obj 166 123 / 12.5;
+#X obj 166 146 - 4;
+#X obj 231 124 / 12.5;
+#X obj 231 147 - 4;
+#X obj 62 241 separator;
+#X obj 127 57 unpack f f f;
+#X msg 128 194 \$1;
+#X obj 62 219 colorRGB 1 1 1;
+#X obj 128 174 / 29;
+#X obj 127 85 t b f;
+#X obj 62 135 gemhead 45;
+#X obj 62 63 loadbang;
+#X msg 62 93 0;
+#X obj 62 314 circle 0.1;
+#X connect 0 0 7 0;
+#X connect 1 0 15 0;
+#X connect 2 0 3 0;
+#X connect 3 0 1 1;
+#X connect 4 0 5 0;
+#X connect 5 0 1 2;
+#X connect 6 0 1 0;
+#X connect 7 0 11 0;
+#X connect 7 1 2 0;
+#X connect 7 2 4 0;
+#X connect 8 0 9 2;
+#X connect 8 0 9 3;
+#X connect 9 0 6 0;
+#X connect 10 0 8 0;
+#X connect 11 0 12 0;
+#X connect 11 1 10 0;
+#X connect 12 0 9 0;
+#X connect 13 0 14 0;
+#X connect 14 0 12 0;
+#X restore 502 153 pd massrender;
+#N canvas 284 227 595 566 linkrender 0;
+#X obj 261 87 inlet;
+#X obj 261 179 / 12.5;
+#X obj 261 202 - 4;
+#X obj 315 180 / 12.5;
+#X obj 315 203 - 4;
+#X obj 189 288 separator;
+#X obj 261 226 t b f;
+#X obj 189 331 curve 2;
+#X obj 375 183 / 12.5;
+#X obj 375 206 - 4;
+#X obj 429 184 / 12.5;
+#X obj 429 207 - 4;
+#X obj 291 256 pack f f;
+#X msg 291 279 \$1 \$2 0;
+#X obj 375 255 pack f f;
+#X msg 375 278 \$1 \$2 0;
+#X obj 261 131 unpack f f f f f;
+#X obj 189 310 colorRGB 1 1 1;
+#X obj 189 262 gemhead 45;
+#X obj 189 180 loadbang;
+#X msg 189 229 0;
+#X connect 0 0 16 0;
+#X connect 1 0 2 0;
+#X connect 2 0 6 0;
+#X connect 3 0 4 0;
+#X connect 4 0 12 1;
+#X connect 5 0 17 0;
+#X connect 6 0 18 0;
+#X connect 6 1 12 0;
+#X connect 8 0 9 0;
+#X connect 9 0 14 0;
+#X connect 10 0 11 0;
+#X connect 11 0 14 1;
+#X connect 12 0 13 0;
+#X connect 13 0 7 1;
+#X connect 14 0 15 0;
+#X connect 15 0 7 2;
+#X connect 16 1 1 0;
+#X connect 16 2 3 0;
+#X connect 16 3 8 0;
+#X connect 16 4 10 0;
+#X connect 17 0 7 0;
+#X connect 18 0 5 0;
+#X connect 19 0 20 0;
+#X connect 20 0 18 0;
+#X restore 432 174 pd linkrender;
+#X obj 432 124 route linksPos massesPos;
+#X obj 273 174 s \$0-msdin;
+#X obj 432 101 r \$0-msdout;
+#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 connect 5 0 6 0;
+#X connect 6 0 7 0;
+#X connect 7 0 11 0;
+#X connect 10 0 9 0;
+#X connect 10 1 8 0;
+#X connect 12 0 10 0;
+#X restore 23 86 pd gem_stuff;
+#X obj 23 64 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 1
+;
+#X text 43 63 gem on/off;
+#X text 196 54 1 Create window;
+#X text 196 74 2 Set dsp on;
+#N canvas 0 22 450 300 compute 0;
+#X obj 110 186 print msd;
+#X obj 52 69 gemhead;
+#X msg 52 96 bang \, get massesPos \, get linksPos \, get massesSpeeds
+1 5 9 13 17 21 25 29;
+#X obj 52 162 msd2D;
+#X obj 67 133 r \$0-msdin;
+#X obj 52 186 s \$0-msdout;
+#X connect 1 0 2 0;
+#X connect 2 0 3 0;
+#X connect 3 0 5 0;
+#X connect 3 1 0 0;
+#X connect 4 0 3 0;
+#X restore 23 129 pd compute;
+#X text 196 94 Drag red masses for bass and white ones for high tones...
+;
+#X text 196 17 Additive synthesis example;
+#X connect 0 0 3 0;
+#X connect 5 0 4 0;
diff --git a/msd2D/03_imsd2Dtest.pd b/msd2D/03_imsd2Dtest.pd
index 0e6a588..a5ec27f 100644
--- a/msd2D/03_imsd2Dtest.pd
+++ b/msd2D/03_imsd2Dtest.pd
@@ -1,34 +1,13 @@
-#N canvas 574 52 843 838 10;
-#X obj 52 15 loadbang;
-#X obj 314 524 print msd;
-#X obj 633 647 gemwin;
-#X msg 633 625 0 \, destroy;
-#X obj 553 709 gemhead;
-#X obj 553 732 world_light;
-#X msg 633 562 reset \, create \, lighting 1 \, 1;
-#X obj 53 499 msd2D --------------------------------;
-#X obj 122 15 cnv 15 500 270 empty empty empty 20 12 0 14 -262131 -66577
-0;
-#X obj 135 261 t a;
-#X obj 135 20 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262131 -1
+#N canvas 568 230 687 149 10;
+#X obj 23 17 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
-#X msg 221 71 reset;
-#X text 173 21 reset;
-#X msg 153 170 50 50;
-#X msg 203 91 mass fix 0 100 50 50;
-#X msg 169 192 Xmax 100 \, Xmin 0 \, Ymax 100 \, Ymin 0;
-#X obj 50 292 cnv 15 572 80 empty empty empty 20 12 0 14 -261689 -66577
-0;
-#X obj 53 300 gemhead;
-#X obj 53 323 t b;
-#X obj 50 376 cnv 15 572 110 empty empty empty 20 12 0 14 -262131 -66577
-0;
-#X msg 82 442 forceX mob 100;
-#X msg 208 443 forceY mob 100;
-#X text 351 396 SET RIGIDITY AND VISCOSITY OF LINKS;
-#X text 367 442 ADD FORCE ON ALL MOBILE MASSES;
-#X obj 47 547 cnv 15 400 200 empty empty empty 20 12 0 14 -261689 -66577
-0;
+#X text 43 16 reset;
+#N canvas 0 22 763 327 gem_stuff 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;
#N canvas 284 227 591 562 linkrender 0;
#X obj 150 9 inlet;
#X obj 150 101 / 12.5;
@@ -73,10 +52,9 @@
#X connect 17 0 5 0;
#X connect 18 0 19 0;
#X connect 19 0 17 0;
-#X restore 62 601 pd linkrender;
-#X text 465 563 1 CREATE WINDOW -->;
-#X text 464 626 3 AND DESTROY IT! -->;
-#X text 464 594 2 DRAG THE STRUCTURE WITH THE MOUSE;
+#X restore 262 171 pd linkrender;
+#X obj 262 133 route linksPos;
+#X obj 262 110 r \$0-msdout;
#N canvas 731 296 454 304 gemmouse 0;
#X obj 189 77 gemmouse;
#X obj 189 184 pack f f;
@@ -87,78 +65,92 @@
#X obj 189 108 / 5;
#X obj 216 108 / -5;
#X obj 79 51 inlet;
-#X obj 140 75 inlet;
#X obj 109 98 t b;
#X obj 108 139 list;
+#X obj 141 42 r mouse_init;
#X connect 0 0 6 0;
#X connect 0 1 7 0;
#X connect 0 2 2 1;
#X connect 1 0 2 0;
-#X connect 2 0 11 1;
+#X connect 2 0 10 1;
#X connect 4 0 1 0;
#X connect 5 0 1 1;
#X connect 6 0 4 0;
#X connect 7 0 5 0;
+#X connect 8 0 9 0;
+#X connect 9 0 10 0;
+#X connect 10 0 3 0;
+#X connect 11 0 10 1;
+#X restore 404 127 pd gemmouse;
+#X obj 404 106 gemhead;
+#X msg 405 147 posX fix \$1;
+#X msg 406 168 posY fix \$2;
+#X obj 405 194 s \$0-msdin;
+#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 connect 6 0 5 0;
+#X connect 7 0 6 0;
#X connect 8 0 10 0;
-#X connect 9 0 11 1;
-#X connect 10 0 11 0;
-#X connect 11 0 3 0;
-#X restore 104 657 pd gemmouse;
-#X obj 104 636 gemhead;
-#X msg 105 677 posX fix \$1;
-#X msg 106 698 posY fix \$2;
-#X text 204 677 SET FIXED MASS TO MOUSE POSITION;
+#X connect 8 0 11 0;
+#X connect 9 0 8 0;
+#X connect 10 0 12 0;
+#X connect 11 0 12 0;
+#X restore 23 86 pd gem_stuff;
+#X obj 23 64 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1
+;
+#X text 43 63 gem on/off;
+#N canvas 487 334 635 333 creation 0;
+#X obj 52 15 loadbang;
+#X msg 221 71 reset;
+#X msg 153 170 50 50;
+#X msg 203 91 mass fix 0 100 50 50;
+#X msg 169 192 Xmax 100 \, Xmin 0 \, Ymax 100 \, Ymin 0;
#X msg 186 150 mass mob 1 100 \$1 \$2;
#X obj 135 42 t b b b b b b;
#X msg 186 116 20 50 \, 23 61 \, 29 71 \, 39 77 \, 50 80 \, 61 77 \,
71 71 \, 77 61 \, 80 50 \, 77 39 \, 71 29 \, 61 23 \, 50 20 \, 39 23
\, 29 29 \, 23 39;
-#X msg 625 711 0.9 0.9 0.9;
-#X obj 62 563 route linksPos;
-#X msg 53 345 bang \, get linksPos;
-#X text 292 313 COMPUTE AND GET ALL LINKS POSITIONS;
-#X text 260 572 DISPLAY LINKS WITH GEM;
-#X msg 85 383 setD inter 0;
-#X msg 216 384 setK inter 1;
-#X msg 216 404 setK inter 2;
#X msg 144 211 link intf mob 0 10 2.5;
#X msg 135 234 link inter mob mob 1 2.5;
-#X text 290 43 CREATION : 17 MASSES \, 2 interactor LINKS;
-#X connect 0 0 35 0;
-#X connect 3 0 2 0;
+#X obj 192 270 s mouse_init;
+#X obj 135 261 s \$0-msdin;
+#X obj 239 25 inlet;
+#X text 303 226 all links are created with these two messages;
+#X connect 0 0 6 0;
+#X connect 1 0 11 0;
+#X connect 2 0 10 0;
+#X connect 3 0 11 0;
+#X connect 4 0 11 0;
+#X connect 5 0 11 0;
+#X connect 6 0 9 0;
+#X connect 6 1 8 0;
+#X connect 6 2 2 0;
+#X connect 6 2 4 0;
+#X connect 6 3 7 0;
+#X connect 6 4 3 0;
+#X connect 6 5 1 0;
+#X connect 7 0 5 0;
+#X connect 8 0 11 0;
+#X connect 9 0 11 0;
+#X connect 12 0 6 0;
+#X restore 23 40 pd creation;
+#N canvas 0 22 450 300 compute 0;
+#X obj 53 100 gemhead;
+#X obj 53 123 t b;
+#X msg 53 145 bang \, get linksPos;
+#X obj 53 224 s \$0-msdout;
+#X obj 63 174 r \$0-msdin;
+#X obj 53 198 msd2D;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 2 0 5 0;
#X connect 4 0 5 0;
-#X connect 6 0 2 0;
-#X connect 7 0 38 0;
-#X connect 7 1 1 0;
-#X connect 9 0 7 0;
-#X connect 10 0 35 0;
-#X connect 11 0 9 0;
-#X connect 13 0 29 1;
-#X connect 14 0 9 0;
-#X connect 15 0 9 0;
-#X connect 17 0 18 0;
-#X connect 18 0 39 0;
-#X connect 20 0 7 0;
-#X connect 21 0 7 0;
-#X connect 29 0 31 0;
-#X connect 29 0 32 0;
-#X connect 30 0 29 0;
-#X connect 31 0 7 0;
-#X connect 32 0 7 0;
-#X connect 34 0 9 0;
-#X connect 35 0 46 0;
-#X connect 35 1 45 0;
-#X connect 35 2 13 0;
-#X connect 35 2 15 0;
-#X connect 35 3 36 0;
-#X connect 35 4 14 0;
-#X connect 35 5 11 0;
-#X connect 36 0 34 0;
-#X connect 37 0 5 1;
-#X connect 38 0 25 0;
-#X connect 39 0 7 0;
-#X connect 42 0 7 0;
-#X connect 43 0 7 0;
-#X connect 44 0 7 0;
-#X connect 45 0 9 0;
-#X connect 46 0 9 0;
+#X connect 5 0 3 0;
+#X restore 23 111 pd compute;
+#X text 164 54 create window;
+#X text 164 69 and drag the structure with the mouse;
+#X connect 0 0 5 0;
+#X connect 3 0 2 0;
diff --git a/msd2D/04_msd2Dperf.pd b/msd2D/04_msd2Dperf.pd
index 8394228..d264d8f 100644
--- a/msd2D/04_msd2Dperf.pd
+++ b/msd2D/04_msd2Dperf.pd
@@ -1,108 +1,18 @@
-#N canvas 590 22 847 803 10;
-#X obj 167 221 t a;
-#X obj 167 33 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+#N canvas 521 54 428 182 10;
+#X msg 144 71 forceX mob 100;
+#X msg 144 94 forceX mob -100;
+#X text 141 13 change number of mass to test performance;
+#X text 141 26 (and reset afterwards);
+#X obj 81 19 nbx 5 14 1 20000 1 1 empty empty empty 0 -6 0 10 -262144
+-1 -1 125.925 256;
+#X obj 18 18 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
+#X text 38 16 reset;
+#N canvas 487 334 635 333 creation 0;
#X msg 239 84 reset;
-#X obj 52 15 loadbang;
-#X text 205 34 reset;
-#X msg 300 402 forceX mob 100;
#X obj 167 55 t b b b b b;
-#X obj 52 583 msd2D --------------------------------;
-#X msg 460 409 0 \, destroy;
-#X obj 481 320 gemhead;
-#X obj 481 343 world_light;
-#X msg 460 386 reset \, create \, lighting 1 \, 1;
-#X obj 52 301 t b;
-#N canvas 643 123 311 308 massrender 0;
-#X obj 24 196 translateXYZ;
-#X obj 24 222 sphere 0.1;
-#X obj 24 170 separator;
-#X obj 24 144 gemhead 45;
-#X obj 103 17 inlet;
-#X obj 103 55 unpack f f f;
-#X obj 109 83 t b f;
-#X obj 24 56 loadbang;
-#X msg 24 80 0;
-#X connect 0 0 1 0;
-#X connect 2 0 0 0;
-#X connect 3 0 2 0;
-#X connect 4 0 5 0;
-#X connect 5 1 6 0;
-#X connect 5 2 0 2;
-#X connect 6 0 3 0;
-#X connect 6 1 0 1;
-#X connect 7 0 8 0;
-#X connect 8 0 3 0;
-#X restore 133 635 pd massrender;
-#N canvas 284 227 394 269 linkrender 0;
-#X obj 121 20 inlet;
-#X obj 57 175 separator;
-#X obj 57 220 curve 2;
-#X obj 43 130 gemhead 45;
-#X msg 213 69 \$4 \$5 0;
-#X msg 141 65 \$2 \$3 0;
-#X obj 140 94 t b a;
-#X obj 44 46 loadbang;
-#X msg 44 75 0;
-#X connect 0 0 4 0;
-#X connect 0 0 5 0;
-#X connect 1 0 2 0;
-#X connect 3 0 1 0;
-#X connect 4 0 2 2;
-#X connect 5 0 6 0;
-#X connect 6 0 3 0;
-#X connect 6 1 2 1;
-#X connect 7 0 8 0;
-#X connect 8 0 3 0;
-#X restore 52 656 pd linkrender;
-#X obj 52 278 gemhead;
-#X obj 460 458 gemwin;
-#X msg 52 335 bang \, get massesPos \, get linksPos;
-#X obj 52 606 route linksPos massesPos;
-#X msg 460 433 view 0 0 4 0 0 0 0 1 0;
-#X msg 300 425 forceX mob -100;
#X obj 441 55 f;
-#X obj 91 421 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
-;
-#X obj 91 442 metro 10;
-#X floatatom 141 421 5 0 0 0 - - -;
-#X text 501 28 change number of mass to test performance;
-#X text 501 41 (and reset afterwards);
-#X obj 441 34 nbx 5 14 1 20000 1 1 empty empty empty 0 -6 0 10 -262144
--1 -1 381.385 256;
-#X text 76 390 instead of GEM doing the timing;
#X msg 221 104 mass fix 0 100 0 0;
-#N canvas 731 296 454 304 gemmouse 0;
-#X obj 189 77 gemmouse;
-#X obj 189 184 pack f f;
-#X obj 189 218 spigot;
-#X obj 109 243 outlet;
-#X obj 109 36 inlet;
-#X obj 109 98 t b;
-#X obj 238 131 + 4;
-#X msg 57 182 posX fix \$1;
-#X msg 57 203 posY fix \$2;
-#X obj 189 108 / 62.5;
-#X obj 237 107 / -62.5;
-#X obj 189 131 - 4;
-#X obj 109 125 list 0 0;
-#X connect 0 0 9 0;
-#X connect 0 1 10 0;
-#X connect 0 2 2 1;
-#X connect 1 0 2 0;
-#X connect 2 0 12 1;
-#X connect 4 0 5 0;
-#X connect 5 0 12 0;
-#X connect 6 0 1 1;
-#X connect 7 0 3 0;
-#X connect 8 0 3 0;
-#X connect 9 0 11 0;
-#X connect 10 0 6 0;
-#X connect 11 0 1 0;
-#X connect 12 0 7 0;
-#X connect 12 0 8 0;
-#X restore 372 536 pd gemmouse;
-#X obj 372 515 gemhead;
#N canvas 0 22 450 300 links 0;
#X obj 136 72 t b;
#X obj 136 116 + 1;
@@ -193,36 +103,111 @@
#X connect 26 0 4 0;
#X restore 203 129 pd masses;
#X msg 185 155 Xmax 4 \, Xmin -4 \, Ymax 4 \, Ymin -4;
-#X connect 0 0 7 0;
-#X connect 1 0 6 0;
-#X connect 2 0 0 0;
+#X obj 166 29 inlet;
+#X obj 205 30 loadbang;
+#X obj 441 33 inlet;
+#X obj 167 221 s \$0-msdin;
+#X connect 0 0 10 0;
+#X connect 1 0 4 0;
+#X connect 1 1 6 0;
+#X connect 1 2 5 0;
+#X connect 1 3 3 0;
+#X connect 1 4 0 0;
+#X connect 2 0 4 1;
+#X connect 2 0 5 1;
+#X connect 3 0 10 0;
+#X connect 4 0 10 0;
+#X connect 5 0 10 0;
+#X connect 6 0 10 0;
+#X connect 7 0 1 0;
+#X connect 8 0 1 0;
+#X connect 9 0 2 0;
+#X restore 18 41 pd creation;
+#N canvas 0 22 450 300 gem 0;
+#X msg 30 99 0 \, destroy;
+#X msg 30 76 reset \, create \, lighting 1 \, 1;
+#X obj 30 148 gemwin;
+#X obj 32 25 inlet;
+#X obj 32 53 sel 1 0;
+#X obj 241 50 gemhead;
+#X obj 241 73 world_light;
+#X connect 0 0 2 0;
+#X connect 1 0 2 0;
+#X connect 3 0 4 0;
+#X connect 4 0 1 0;
+#X connect 4 1 0 0;
+#X connect 5 0 6 0;
+#X restore 18 91 pd gem;
+#X obj 18 68 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1
+;
+#X text 38 66 gem on/off;
+#N canvas 0 22 450 300 compute 0;
+#N canvas 643 123 311 308 massrender 0;
+#X obj 24 196 translateXYZ;
+#X obj 24 170 separator;
+#X obj 24 144 gemhead 45;
+#X obj 103 17 inlet;
+#X obj 103 55 unpack f f f;
+#X obj 109 83 t b f;
+#X obj 24 56 loadbang;
+#X msg 24 80 0;
+#X obj 24 222 sphere 0.1;
+#X connect 0 0 8 0;
+#X connect 1 0 0 0;
+#X connect 2 0 1 0;
+#X connect 3 0 4 0;
+#X connect 4 1 5 0;
+#X connect 4 2 0 2;
+#X connect 5 0 2 0;
+#X connect 5 1 0 1;
+#X connect 6 0 7 0;
+#X connect 7 0 2 0;
+#X restore 133 205 pd massrender;
+#N canvas 284 227 394 269 linkrender 0;
+#X obj 121 20 inlet;
+#X obj 57 175 separator;
+#X obj 57 220 curve 2;
+#X obj 43 130 gemhead 45;
+#X msg 213 69 \$4 \$5 0;
+#X msg 141 65 \$2 \$3 0;
+#X obj 140 94 t b a;
+#X obj 44 46 loadbang;
+#X msg 44 75 0;
+#X connect 0 0 4 0;
+#X connect 0 0 5 0;
+#X connect 1 0 2 0;
+#X connect 3 0 1 0;
+#X connect 4 0 2 2;
+#X connect 5 0 6 0;
+#X connect 6 0 3 0;
+#X connect 6 1 2 1;
+#X connect 7 0 8 0;
+#X connect 8 0 3 0;
+#X restore 52 256 pd linkrender;
+#X obj 52 28 gemhead;
+#X msg 52 85 bang \, get massesPos \, get linksPos;
+#X obj 52 176 route linksPos massesPos;
+#X obj 82 127 r \$0-msdin;
+#X obj 52 153 msd2D;
+#X obj 85 198 inlet;
+#X obj 52 227 spigot;
+#X connect 2 0 3 0;
#X connect 3 0 6 0;
+#X connect 4 0 8 0;
+#X connect 4 1 0 0;
+#X connect 5 0 6 0;
+#X connect 6 0 4 0;
+#X connect 7 0 8 1;
+#X connect 8 0 1 0;
+#X restore 19 137 pd compute;
+#X obj 144 118 s \$0-msdin;
+#X text 260 80 click to move;
+#X obj 19 115 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X text 39 114 display links;
+#X connect 0 0 12 0;
+#X connect 1 0 12 0;
+#X connect 4 0 7 1;
#X connect 5 0 7 0;
-#X connect 6 0 32 0;
-#X connect 6 1 34 0;
-#X connect 6 2 33 0;
-#X connect 6 3 29 0;
-#X connect 6 4 2 0;
-#X connect 7 0 18 0;
-#X connect 8 0 16 0;
-#X connect 9 0 10 0;
-#X connect 11 0 16 0;
-#X connect 12 0 17 0;
-#X connect 15 0 12 0;
-#X connect 17 0 7 0;
-#X connect 18 0 14 0;
-#X connect 18 1 13 0;
-#X connect 19 0 16 0;
-#X connect 20 0 7 0;
-#X connect 21 0 32 1;
-#X connect 21 0 33 1;
-#X connect 22 0 23 0;
-#X connect 23 0 7 0;
-#X connect 24 0 23 1;
-#X connect 27 0 21 0;
-#X connect 29 0 0 0;
-#X connect 30 0 7 0;
-#X connect 31 0 30 0;
-#X connect 32 0 0 0;
-#X connect 33 0 0 0;
-#X connect 34 0 0 0;
+#X connect 9 0 8 0;
+#X connect 14 0 11 0;
diff --git a/msd2D/05_msd2DDataStruct.pd b/msd2D/05_msd2DDataStruct.pd
index a35b99e..9f74841 100644
--- a/msd2D/05_msd2DDataStruct.pd
+++ b/msd2D/05_msd2DDataStruct.pd
@@ -2,107 +2,116 @@
mid2 float lid;
#N struct mass float x float y float mid float mob;
#N struct fixmass float x float y float mid;
-#N canvas 391 53 852 890 10;
-#X obj 52 15 loadbang;
-#X obj 52 501 msd2D --------------------------------;
-#X obj 135 274 t a;
-#X obj 135 20 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262131 -1
--1;
-#X msg 207 71 reset;
-#X text 173 21 reset;
-#X obj 135 42 t b b b b b;
-#X obj 574 252 structures;
-#X obj 53 188 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+#N canvas 241 22 630 524 10;
+#X obj 15 58 structures;
+#X obj 16 96 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
;
-#X msg 153 181 Xmax 300 \, Xmin 0 \, Ymax 300 \, Ymin 0;
-#X msg 186 317 forceY mob 8;
-#X msg 171 113 100 300 \, 150 300 \, 100 230 \, 150 230 \, 100 180
-\, 150 180 \, 50 180 \, 200 180 \, 115 180 \, 135 180 \, 110 150 \,
-140 150;
-#X msg 135 205 0 5 \, 1 2 \, 1 4 \, 2 3 \, 3 0 \, 0 2 \, 1 3 \, 2 4
-\, 4 5 \, 5 3 \, 3 4 \, 2 5 \, 4 6 \, 5 7 \, 6 5 \, 4 7 \, 4 8 \, 5
-9 \, 8 9 \, 8 10 \, 10 11 \, 11 9 \, 9 10 \, 8 11;
-#X obj 53 217 metro 10;
-#N canvas 0 0 307 306 1028-anim 0;
-#X scalar liaison 100 300 150 180 0 0 0 \;;
-#X scalar liaison 100 180 115 180 0 0 0 \;;
-#X scalar liaison 100 180 150 180 0 0 0 \;;
-#X scalar liaison 150 230 100 300 0 0 0 \;;
-#X scalar liaison 110 150 140 150 0 0 0 \;;
-#X scalar liaison 100 180 50 180 0 0 0 \;;
-#X scalar liaison 150 300 100 180 0 0 0 \;;
-#X scalar liaison 115 180 135 180 0 0 0 \;;
-#X scalar liaison 150 230 100 180 0 0 0 \;;
-#X scalar liaison 150 300 150 230 0 0 0 \;;
-#X scalar liaison 135 180 110 150 0 0 0 \;;
-#X scalar liaison 50 180 150 180 0 0 0 \;;
-#X scalar liaison 150 300 100 230 0 0 0 \;;
-#X scalar liaison 150 180 135 180 0 0 0 \;;
-#X scalar liaison 150 180 150 230 0 0 0 \;;
-#X scalar liaison 100 300 100 230 0 0 0 \;;
-#X scalar liaison 140 150 135 180 0 0 0 \;;
-#X scalar liaison 150 180 200 180 0 0 0 \;;
-#X scalar liaison 100 230 150 230 0 0 0 \;;
-#X scalar liaison 115 180 110 150 0 0 0 \;;
-#X scalar liaison 100 230 150 180 0 0 0 \;;
-#X scalar liaison 100 230 100 180 0 0 0 \;;
-#X scalar liaison 115 180 140 150 0 0 0 \;;
-#X scalar liaison 100 180 200 180 0 0 0 \;;
-#X scalar mass 100 300 0 0 \;;
-#X scalar mass 115 180 8 0 \;;
-#X scalar mass 100 180 4 0 \;;
-#X scalar mass 100 230 2 0 \;;
-#X scalar mass 110 150 10 0 \;;
-#X scalar mass 50 180 6 0 \;;
-#X scalar mass 150 300 1 0 \;;
-#X scalar mass 135 180 9 0 \;;
-#X scalar mass 150 180 5 0 \;;
-#X scalar mass 150 230 3 0 \;;
-#X scalar mass 140 150 11 0 \;;
-#X scalar mass 200 180 7 0 \;;
+#X msg 16 153 forceY mob 8;
+#X obj 16 125 metro 10;
+#N canvas 0 22 307 306 \$0-anim 0;
+#X scalar liaison 90.3805 300 139.692 181.359 0 0 0 \;;
+#X scalar liaison 89.4172 189.783 104.878 200.197 0 0 0 \;;
+#X scalar liaison 89.4172 189.783 139.692 181.359 0 0 0 \;;
+#X scalar liaison 145.861 231.953 90.3805 300 0 0 0 \;;
+#X scalar liaison 81.2748 184.111 102.254 162.589 0 0 0 \;;
+#X scalar liaison 89.4172 189.783 52.423 226.527 0 0 0 \;;
+#X scalar liaison 156.503 300 89.4172 189.783 0 0 0 \;;
+#X scalar liaison 104.878 200.197 121.885 186.762 0 0 0 \;;
+#X scalar liaison 145.861 231.953 89.4172 189.783 0 0 0 \;;
+#X scalar liaison 156.503 300 145.861 231.953 0 0 0 \;;
+#X scalar liaison 121.885 186.762 81.2748 184.111 0 0 0 \;;
+#X scalar liaison 52.423 226.527 139.692 181.359 0 0 0 \;;
+#X scalar liaison 156.503 300 97.1881 236.113 0 0 0 \;;
+#X scalar liaison 139.692 181.359 121.885 186.762 0 0 0 \;;
+#X scalar liaison 139.692 181.359 145.861 231.953 0 0 0 \;;
+#X scalar liaison 90.3805 300 97.1881 236.113 0 0 0 \;;
+#X scalar liaison 102.254 162.589 121.885 186.762 0 0 0 \;;
+#X scalar liaison 139.692 181.359 187.622 200.002 0 0 0 \;;
+#X scalar liaison 97.1881 236.113 145.861 231.953 0 0 0 \;;
+#X scalar liaison 104.878 200.197 81.2748 184.111 0 0 0 \;;
+#X scalar liaison 97.1881 236.113 139.692 181.359 0 0 0 \;;
+#X scalar liaison 97.1881 236.113 89.4172 189.783 0 0 0 \;;
+#X scalar liaison 104.878 200.197 102.254 162.589 0 0 0 \;;
+#X scalar liaison 89.4172 189.783 187.622 200.002 0 0 0 \;;
+#X scalar mass 90.3805 300 0 0 \;;
+#X scalar mass 104.878 200.197 8 0 \;;
+#X scalar mass 89.4172 189.783 4 0 \;;
+#X scalar mass 97.1881 236.113 2 0 \;;
+#X scalar mass 81.2748 184.111 10 0 \;;
+#X scalar mass 52.423 226.527 6 0 \;;
+#X scalar mass 156.503 300 1 0 \;;
+#X scalar mass 121.885 186.762 9 0 \;;
+#X scalar mass 139.692 181.359 5 0 \;;
+#X scalar mass 145.861 231.953 3 0 \;;
+#X scalar mass 102.254 162.589 11 0 \;;
+#X scalar mass 187.622 200.002 7 0 \;;
#X coords 0 0 300 300 300 300 1;
-#X restore 466 370 pd \$0-anim;
-#X obj 52 290 make_anim \$0-anim;
-#X text 26 165 3 - metro ON;
-#X text 333 302 1 - Create the Datastructre;
-#X text 333 321 2 - notch the "poll" case to set DS to actual model
-state;
-#X text 95 417 4 - "force" the dancer to move;
-#X msg 135 252 link souple \$1 \$2 12 20;
-#X msg 211 443 forceY mob -200;
-#X msg 212 466 forceY mob 200;
-#X msg 86 441 forceX mob 200;
-#X msg 86 464 forceX mob -200;
-#X msg 52 540 forceX 0 -200 \, forceX 1 200;
-#X msg 52 609 forceY 0 -200 \, forceY 1 -200 \, forceX 0 -200 \, forceX
+#X restore 255 92 pd \$0-anim;
+#X obj 16 212 make_anim \$0-anim;
+#X msg 15 358 forceY mob -200;
+#X msg 15 380 forceY mob 200;
+#X msg 15 316 forceX mob 200;
+#X msg 15 337 forceX mob -200;
+#X msg 15 400 forceX 0 -200 \, forceX 1 200;
+#X msg 15 442 forceY 0 -200 \, forceY 1 -200 \, forceX 0 -200 \, forceX
1 200;
-#X msg 52 571 forceY 6 -200 \, forceY 7 -200;
-#X msg 171 146 mass mob 1 100 \$1 \$2;
-#X text 417 61 NOT UPDATED...;
-#X connect 0 0 6 0;
-#X connect 1 0 15 0;
-#X connect 1 1 15 0;
-#X connect 2 0 1 0;
+#X msg 15 421 forceY 6 -200 \, forceY 7 -200;
+#X obj 15 182 r \$0-msdin;
+#N canvas 0 22 450 300 creation 0;
+#X obj 45 20 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262131 -1
+-1;
+#X msg 117 71 reset;
+#X text 83 21 reset;
+#X obj 45 42 t b b b b b;
+#X msg 63 181 Xmax 300 \, Xmin 0 \, Ymax 300 \, Ymin 0;
+#X msg 81 113 100 300 \, 150 300 \, 100 230 \, 150 230 \, 100 180 \,
+150 180 \, 50 180 \, 200 180 \, 115 180 \, 135 180 \, 110 150 \, 140
+150;
+#X msg 45 205 0 5 \, 1 2 \, 1 4 \, 2 3 \, 3 0 \, 0 2 \, 1 3 \, 2 4
+\, 4 5 \, 5 3 \, 3 4 \, 2 5 \, 4 6 \, 5 7 \, 6 5 \, 4 7 \, 4 8 \, 5
+9 \, 8 9 \, 8 10 \, 10 11 \, 11 9 \, 9 10 \, 8 11;
+#X msg 45 252 link souple \$1 \$2 12 20;
+#X msg 81 146 mass mob 1 100 \$1 \$2;
+#X obj 45 274 s \$0-msdin;
+#X obj 69 6 inlet;
+#X obj 141 26 loadbang;
+#X connect 0 0 3 0;
+#X connect 1 0 9 0;
#X connect 3 0 6 0;
-#X connect 4 0 2 0;
-#X connect 6 0 12 0;
-#X connect 6 1 9 0;
-#X connect 6 2 11 0;
-#X connect 6 4 4 0;
-#X connect 8 0 13 0;
-#X connect 9 0 2 0;
-#X connect 10 0 1 0;
-#X connect 11 0 28 0;
-#X connect 12 0 20 0;
-#X connect 13 0 1 0;
-#X connect 13 0 10 0;
-#X connect 15 0 1 0;
-#X connect 20 0 2 0;
-#X connect 21 0 1 0;
-#X connect 22 0 1 0;
-#X connect 23 0 1 0;
-#X connect 24 0 1 0;
-#X connect 25 0 1 0;
-#X connect 26 0 1 0;
-#X connect 27 0 1 0;
-#X connect 28 0 2 0;
+#X connect 3 1 4 0;
+#X connect 3 2 5 0;
+#X connect 3 4 1 0;
+#X connect 4 0 9 0;
+#X connect 5 0 8 0;
+#X connect 6 0 7 0;
+#X connect 7 0 9 0;
+#X connect 8 0 9 0;
+#X connect 10 0 3 0;
+#X connect 11 0 3 0;
+#X restore 15 37 pd creation;
+#X obj 15 14 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X text 36 14 reset;
+#X obj 15 467 s \$0-msdin;
+#X obj 15 286 msd2D;
+#X text 38 95 compute;
+#X text 252 28 1 - notch the "poll" case to set DS to actual model
+state;
+#X text 252 47 2 - compute ON;
+#X text 252 64 3 - "force" the dancer to move;
+#X connect 1 0 3 0;
+#X connect 2 0 18 0;
+#X connect 3 0 2 0;
+#X connect 3 0 18 0;
+#X connect 5 0 18 0;
+#X connect 6 0 17 0;
+#X connect 7 0 17 0;
+#X connect 8 0 17 0;
+#X connect 9 0 17 0;
+#X connect 10 0 17 0;
+#X connect 11 0 17 0;
+#X connect 12 0 17 0;
+#X connect 13 0 18 0;
+#X connect 15 0 14 0;
+#X connect 18 0 5 0;
+#X connect 18 1 5 0;
diff --git a/msd2D/make_anim.pd b/msd2D/make_anim.pd
index 8b635d8..c29fc3f 100644
--- a/msd2D/make_anim.pd
+++ b/msd2D/make_anim.pd
@@ -1,9 +1,9 @@
#N struct mass float x float y float mid float mob;
#N struct fixmass float x float y float mid;
-#N canvas 327 365 669 506 10;
+#N canvas 445 254 669 506 10;
#X obj 352 260 pointer;
#X obj 86 83 spigot;
-#X obj 227 148 bng 24 250 50 0 \$0-create empty Create 0 -6 0 8 -262144
+#X obj 400 20 bng 15 250 50 0 \$0-create empty Create 22 6 0 10 -258113
-1 -1;
#X obj 316 76 r \$0-create;
#X obj 123 50 r \$0-listen;
@@ -12,7 +12,7 @@
#X obj 316 98 t b b b b b;
#X obj 199 217 s \$0-listen;
#X msg 199 191 0;
-#N canvas 0 0 870 770 1002-anim 0;
+#N canvas 0 22 870 770 \$0-anim 0;
#X scalar mass 501.859 143.462 2 0 \;;
#X scalar mass 385.528 207.845 3 0 \;;
#X scalar mass 563.885 96.7994 4 0 \;;
@@ -31,12 +31,10 @@
#X obj 352 137 symbol;
#X msg 352 228 traverse \$1 \, bang;
#X obj 86 27 inlet;
-#X obj 143 326 tgl 15 0 empty empty poll 0 -6 0 8 -262144 -1 -1 1 1
+#X obj 400 35 tgl 15 0 empty empty poll 22 6 0 10 -262144 -1 -1 1 1
;
#X msg 400 160 \; \$1 clear \;;
#X obj 464 376 r \$0-cnv;
-#X obj 413 334 tgl 15 0 empty empty view 0 -6 0 8 -262144 -1 -1 0 1
-;
#X obj 413 403 pack 0 s;
#X msg 413 434 \; \$2 vis \$1;
#X obj 59 376 metro 40;
@@ -50,7 +48,7 @@
#X obj 334 305 r \$0-mass2;
#X obj 293 283 r \$0-mass1;
#X obj 203 159 s \$0-mass1;
-#N canvas 0 0 591 644 look4mass2 0;
+#N canvas 0 22 591 644 look4mass2 0;
#X msg 228 199 next;
#X obj 228 463 spigot;
#X obj 228 386 pack 0 0;
@@ -93,7 +91,7 @@
#X obj 165 67 t b b a a;
#X msg 203 113 \$3;
#X msg 236 113 \$4;
-#N canvas 0 0 591 644 look4mass1 0;
+#N canvas 0 22 591 644 look4mass1 0;
#X msg 228 199 next;
#X obj 228 463 spigot;
#X obj 228 386 pack 0 0;
@@ -162,43 +160,45 @@
#X msg 62 166 \$3;
#X obj 62 283 set mass mob;
#X obj 62 229 * 0;
-#X connect 0 0 30 1;
-#X connect 0 0 34 4;
-#X connect 0 0 36 3;
-#X connect 1 0 32 0;
+#X obj 400 50 tgl 15 0 empty empty view 22 6 0 10 -262144 -1 -1 0 1
+;
+#X connect 0 0 29 1;
+#X connect 0 0 33 4;
+#X connect 0 0 35 3;
+#X connect 1 0 31 0;
#X connect 3 0 7 0;
#X connect 4 0 1 1;
#X connect 6 0 5 0;
#X connect 7 0 9 0;
-#X connect 7 1 33 0;
+#X connect 7 1 32 0;
#X connect 7 2 17 0;
#X connect 7 3 15 0;
#X connect 7 4 6 0;
#X connect 7 4 13 0;
#X connect 9 0 8 0;
#X connect 11 0 14 0;
-#X connect 12 0 29 0;
-#X connect 13 0 29 0;
+#X connect 12 0 28 0;
+#X connect 13 0 28 0;
#X connect 15 0 21 0;
#X connect 16 0 15 1;
#X connect 16 0 17 1;
#X connect 17 0 18 0;
#X connect 18 0 0 0;
#X connect 19 0 1 0;
-#X connect 20 0 26 0;
-#X connect 22 0 24 1;
+#X connect 20 0 25 0;
+#X connect 22 0 23 1;
#X connect 23 0 24 0;
-#X connect 24 0 25 0;
-#X connect 26 0 27 0;
-#X connect 29 0 11 0;
-#X connect 32 0 38 0;
-#X connect 32 1 35 0;
-#X connect 33 0 28 0;
-#X connect 35 0 34 0;
-#X connect 36 0 40 1;
-#X connect 37 0 36 0;
-#X connect 38 0 39 0;
-#X connect 38 1 37 0;
-#X connect 39 0 41 0;
-#X connect 41 0 40 0;
-#X coords 0 0 1 1 120 80 1;
+#X connect 25 0 26 0;
+#X connect 28 0 11 0;
+#X connect 31 0 37 0;
+#X connect 31 1 34 0;
+#X connect 32 0 27 0;
+#X connect 34 0 33 0;
+#X connect 35 0 39 1;
+#X connect 36 0 35 0;
+#X connect 37 0 38 0;
+#X connect 37 1 36 0;
+#X connect 38 0 40 0;
+#X connect 40 0 39 0;
+#X connect 41 0 23 0;
+#X coords 0 -1 1 1 120 65 1 400 0;