aboutsummaryrefslogtreecommitdiff
path: root/msd3D
diff options
context:
space:
mode:
authorN.N. <nimon@users.sourceforge.net>2008-03-28 02:17:07 +0000
committerN.N. <nimon@users.sourceforge.net>2008-03-28 02:17:07 +0000
commit61d723c85b31647dc45cc070431d922436707cfa (patch)
tree220b609ba49a6cf8577629af4c5875843d667a22 /msd3D
parentd9451f13b229c79a955888d4764e373ebc6191c7 (diff)
examples modified
svn path=/trunk/externals/nusmuk/; revision=9635
Diffstat (limited to 'msd3D')
-rw-r--r--msd3D/01_msd3Dtest.pd351
-rw-r--r--msd3D/02_msd3Dperf.pd187
-rw-r--r--msd3D/03_msd3Dmemb.pd229
-rw-r--r--msd3D/04_msd3Dfilet.pd158
-rw-r--r--msd3D/05_msd3Dvline.pd224
5 files changed, 618 insertions, 531 deletions
diff --git a/msd3D/01_msd3Dtest.pd b/msd3D/01_msd3Dtest.pd
index a40907f..744adf2 100644
--- a/msd3D/01_msd3Dtest.pd
+++ b/msd3D/01_msd3Dtest.pd
@@ -1,133 +1,53 @@
-#N canvas 524 22 867 806 10;
-#X obj 32 13 loadbang;
-#X obj 294 522 print msd;
-#X obj 642 647 gemwin;
-#X msg 642 625 0 \, destroy;
-#X obj 532 707 gemhead;
-#X obj 532 730 world_light;
-#X msg 642 562 reset \, create \, lighting 1 \, 1;
-#X obj 102 13 cnv 15 500 270 empty empty empty 20 12 0 14 -262131 -66577
-0;
-#X obj 115 259 t a;
-#X obj 115 18 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262131 -1
+#N canvas 499 22 653 522 10;
+#X obj 27 26 loadbang;
+#X obj 127 419 print msd;
+#X obj 263 104 gemwin;
+#X msg 278 81 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 187 69 reset;
-#X text 153 19 reset;
-#X obj 115 40 t b b b b b;
-#X msg 133 158 50 50;
-#X obj 30 290 cnv 15 572 80 empty empty empty 20 12 0 14 -261689 -66577
-0;
-#X obj 33 298 gemhead;
-#X obj 33 321 t b;
-#X msg 33 343 bang \, get massesPos \, get linksPos;
-#X text 393 85 CREATION : 3 MASSES \, 2 LINKS;
-#X text 272 311 COMPUTE AND GET ALL MASSES AND LINKS POSITIONS;
-#X obj 30 374 cnv 15 572 110 empty empty empty 20 12 0 14 -262131 -66577
-0;
-#X msg 65 381 setD souple 0.01;
-#X msg 196 382 setK souple 1;
-#X msg 65 401 setD souple 1;
-#X msg 196 402 setK souple 2;
-#X text 331 394 SET RIGIDITY AND VISCOSITY OF LINKS;
-#X text 347 440 ADD FORCE ON ALL MOBILE MASSES;
-#X obj 27 545 cnv 15 400 200 empty empty empty 20 12 0 14 -261689 -66577
-0;
-#N canvas 643 123 617 602 massrender 0;
-#X obj 183 15 inlet;
+#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;
+#N canvas 643 123 308 285 massrender 0;
+#X obj 127 22 inlet;
#X obj 48 203 translateXYZ;
-#X obj 48 229 sphere 0.1;
-#X obj 183 79 / 12.5;
-#X obj 183 102 - 4;
-#X obj 248 80 / 12.5;
-#X obj 248 103 - 4;
+#X obj 127 86 / 12.5;
+#X obj 127 109 - 4;
+#X obj 192 87 / 12.5;
+#X obj 192 110 - 4;
#X obj 48 177 separator;
-#X obj 181 129 t b f;
-#X obj 300 80 / 12.5;
-#X obj 300 103 - 4;
-#X obj 183 50 unpack f f f f;
-#X obj 48 148 gemhead 45;
-#X obj 48 90 loadbang;
-#X msg 48 118 0;
+#X obj 125 136 t b f;
+#X obj 48 141 gemhead 45;
+#X msg 48 104 0;
+#X obj 47 58 loadbang;
+#X obj 127 57 unpack f f f f;
+#X obj 238 88 / 12.5;
+#X obj 238 111 - 4;
+#X obj 48 229 sphere 0.1;
#X connect 0 0 11 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 12 0;
-#X connect 8 1 1 1;
-#X connect 9 0 10 0;
-#X connect 10 0 1 3;
-#X connect 11 1 3 0;
-#X connect 11 2 5 0;
-#X connect 11 3 9 0;
-#X connect 12 0 7 0;
-#X connect 13 0 14 0;
-#X connect 14 0 12 0;
-#X restore 114 589 pd massrender;
-#N canvas 284 227 595 566 linkrender 0;
-#X obj 113 25 inlet;
-#X obj 113 117 / 12.5;
-#X obj 113 140 - 4;
-#X obj 167 118 / 12.5;
-#X obj 167 141 - 4;
-#X obj 44 222 separator;
-#X obj 113 164 t b f;
-#X obj 44 265 curve 2;
-#X obj 286 117 / 12.5;
-#X obj 286 140 - 4;
-#X obj 340 118 / 12.5;
-#X obj 340 141 - 4;
-#X obj 217 117 / 12.5;
-#X obj 217 142 - 4;
-#X obj 143 194 pack f f f;
-#X msg 143 217 \$1 \$2 \$3;
-#X obj 391 118 / 12.5;
-#X obj 391 141 - 4;
-#X obj 286 189 pack f f f;
-#X msg 286 212 \$1 \$2 \$3;
-#X obj 113 69 unpack f f f f f f f;
-#X obj 44 198 gemhead 45;
-#X obj 44 105 loadbang;
-#X msg 44 133 0;
-#X connect 0 0 20 0;
-#X connect 1 0 2 0;
-#X connect 2 0 6 0;
-#X connect 3 0 4 0;
-#X connect 4 0 14 1;
-#X connect 5 0 7 0;
-#X connect 6 0 21 0;
-#X connect 6 1 14 0;
-#X connect 8 0 9 0;
-#X connect 9 0 18 0;
-#X connect 10 0 11 0;
-#X connect 11 0 18 1;
+#X connect 1 0 14 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 8 0;
+#X connect 7 1 1 1;
+#X connect 8 0 6 0;
+#X connect 9 0 8 0;
+#X connect 10 0 9 0;
+#X connect 11 1 2 0;
+#X connect 11 2 4 0;
+#X connect 11 3 12 0;
#X connect 12 0 13 0;
-#X connect 13 0 14 2;
-#X connect 14 0 15 0;
-#X connect 15 0 7 1;
-#X connect 16 0 17 0;
-#X connect 17 0 18 2;
-#X connect 18 0 19 0;
-#X connect 19 0 7 2;
-#X connect 20 1 1 0;
-#X connect 20 2 3 0;
-#X connect 20 3 12 0;
-#X connect 20 4 8 0;
-#X connect 20 5 10 0;
-#X connect 20 6 16 0;
-#X connect 21 0 5 0;
-#X connect 22 0 23 0;
-#X connect 23 0 21 0;
-#X restore 33 610 pd linkrender;
-#X obj 33 560 route linksPos massesPos;
-#X text 241 570 DISPLAY MASSES AND LINKS;
-#X text 289 592 WITH GEM;
-#X text 445 561 1 CREATE WINDOW -->;
-#X text 444 624 3 AND DESTROY IT! -->;
-#X text 444 592 2 DRAG THE STRUCTURE WITH THE MOUSE;
-#N canvas 731 296 454 304 gemmouse 0;
+#X connect 13 0 1 3;
+#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;
#X obj 189 218 spigot;
@@ -137,73 +57,136 @@
#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 33 672 pd gemmouse;
-#X obj 33 651 gemhead;
-#X msg 33 693 posX fix \$1;
-#X msg 33 714 posY fix \$2;
-#X text 184 675 SET FIXED MASS TO MOUSE POSITION;
-#X obj 33 497 msd3D --------------------------------;
-#X msg 62 440 forceZ mob 200;
-#X msg 188 441 forceZ mob -200;
-#X msg 151 138 mass mob 1 \$1 \$2 \$3 \$4;
-#X msg 133 179 Xmax 100 \, Xmin 0 \, Ymax 100 \, Ymin 0 \, Zmax 70
-\, Zmin 0;
-#X msg 169 89 mass fix 0 100 50 50 50;
-#X msg 115 232 link souple \$1 \$2 5 10;
-#X msg 115 211 0 1 \, 1 2;
-#X msg 151 114 100 20 10 20 \, 200 20 25 0;
-#X connect 0 0 12 0;
-#X connect 3 0 2 0;
-#X connect 4 0 5 0;
-#X connect 6 0 2 0;
-#X connect 8 0 41 0;
-#X connect 9 0 12 0;
-#X connect 10 0 8 0;
-#X connect 12 0 48 0;
-#X connect 12 1 13 0;
-#X connect 12 1 45 0;
-#X connect 12 2 49 0;
-#X connect 12 3 46 0;
-#X connect 12 4 10 0;
-#X connect 13 0 36 1;
+#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 128 86 / 12.5;
+#X obj 128 109 - 4;
+#X obj 183 87 / 12.5;
+#X obj 183 110 - 4;
+#X obj 48 177 separator;
+#X obj 128 136 t b f;
+#X obj 262 88 / 12.5;
+#X obj 262 111 - 4;
+#X obj 290 112 / 12.5;
+#X obj 290 135 - 4;
+#X obj 48 222 curve 2;
+#X obj 155 189 pack f f 0;
+#X obj 262 192 pack f f 0;
+#X obj 48 130 gemhead 45;
+#X obj 47 44 loadbang;
+#X msg 47 68 0;
+#X obj 127 57 unpack f f f f f f f;
+#X obj 212 112 / 12.5;
+#X obj 212 135 - 4;
+#X obj 319 135 / 12.5;
+#X obj 319 158 - 4;
+#X connect 0 0 17 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 11 0;
+#X connect 6 0 14 0;
+#X connect 6 1 12 0;
+#X connect 7 0 8 0;
+#X connect 8 0 13 0;
+#X connect 9 0 10 0;
+#X connect 10 0 13 1;
+#X connect 12 0 11 1;
+#X connect 13 0 11 2;
+#X connect 14 0 5 0;
#X connect 15 0 16 0;
-#X connect 16 0 17 0;
-#X connect 17 0 41 0;
-#X connect 21 0 41 0;
-#X connect 22 0 41 0;
-#X connect 23 0 41 0;
-#X connect 24 0 41 0;
-#X connect 30 0 29 0;
-#X connect 30 1 28 0;
-#X connect 30 2 1 0;
-#X connect 36 0 38 0;
-#X connect 36 0 39 0;
-#X connect 37 0 36 0;
-#X connect 38 0 41 0;
-#X connect 39 0 41 0;
-#X connect 41 0 30 0;
-#X connect 41 1 1 0;
-#X connect 42 0 41 0;
-#X connect 43 0 41 0;
-#X connect 44 0 8 0;
-#X connect 45 0 8 0;
-#X connect 46 0 8 0;
-#X connect 47 0 8 0;
-#X connect 48 0 47 0;
-#X connect 49 0 44 0;
+#X connect 16 0 14 0;
+#X connect 17 1 1 0;
+#X connect 17 2 3 0;
+#X connect 17 3 18 0;
+#X connect 17 4 7 0;
+#X connect 17 5 9 0;
+#X connect 17 6 20 0;
+#X connect 18 0 19 0;
+#X connect 19 0 12 2;
+#X connect 20 0 21 0;
+#X connect 21 0 13 2;
+#X restore 366 289 pd linkrender;
+#X msg 206 139 50 50;
+#X msg 58 118 40 60 \, 60 60 \, 60 40 \, 40 40;
+#X obj 206 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 text 364 315 move mass to mouse position;
+#X text 365 197 display masses with gem;
+#X text 261 6 1 CREATE WINDOW;
+#X text 108 26 reset struct;
+#X obj 90 259 s \$0-msdin;
+#X obj 84 373 r \$0-msdin;
+#X obj 52 419 s \$0-msdout;
+#X obj 365 423 s \$0-msdin;
+#X obj 366 218 r \$0-msdout;
+#X msg 74 96 mass fix 0 100 50 50 50;
+#X msg 58 139 mass mob 1 100 \$1 \$2 50;
+#X obj 53 397 msd3D;
+#X obj 368 177 s \$0-msdin;
+#X msg 369 129 forceZ mob 200;
+#X msg 368 153 forceZ mob 200;
+#X text 367 108 send vertical forces;
+#X msg 263 58 reset \, create \, lighting 1 \, 1;
+#X obj 51 454 gemhead;
+#X obj 51 476 world_light;
+#X connect 0 0 7 0;
+#X connect 3 0 2 0;
+#X connect 5 0 7 0;
+#X connect 6 0 30 0;
+#X connect 7 0 22 0;
+#X connect 7 1 19 0;
+#X connect 7 1 8 0;
+#X connect 7 2 20 0;
+#X connect 7 3 35 0;
+#X connect 7 4 6 0;
+#X connect 8 0 30 0;
+#X connect 9 0 10 0;
+#X connect 10 0 11 0;
+#X connect 11 0 37 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 33 0;
+#X connect 17 0 33 0;
+#X connect 19 0 21 0;
+#X connect 20 0 36 0;
+#X connect 22 0 23 0;
+#X connect 22 0 30 0;
+#X connect 23 0 30 0;
+#X connect 31 0 37 0;
+#X connect 34 0 13 0;
+#X connect 35 0 30 0;
+#X connect 36 0 30 0;
+#X connect 37 0 32 0;
+#X connect 37 1 1 0;
+#X connect 39 0 38 0;
+#X connect 40 0 38 0;
+#X connect 42 0 2 0;
+#X connect 43 0 44 0;
diff --git a/msd3D/02_msd3Dperf.pd b/msd3D/02_msd3Dperf.pd
index 8692d3e..0d87f9d 100644
--- a/msd3D/02_msd3Dperf.pd
+++ b/msd3D/02_msd3Dperf.pd
@@ -1,54 +1,24 @@
-#N canvas 545 25 704 830 10;
-#X obj 159 280 t a;
+#N canvas 652 25 483 246 10;
+#X obj 20 12 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X text 43 12 reset;
+#X text 323 102 <-- Move masses;
+#X obj 83 13 nbx 5 14 200 20000 1 0 empty empty empty 0 -6 0 10 -262144
+-1 -1 347.56 1000;
+#X msg 206 45 forceX mob 10;
+#X msg 206 69 forceX mob -10;
+#X msg 225 95 forceY mob 10;
+#X msg 224 119 forceY mob -10;
+#X msg 238 143 forceZ mob 10;
+#X msg 237 167 forceZ mob -10;
+#N canvas 0 22 659 390 creation 0;
#X obj 159 5 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X msg 231 60 reset;
#X obj 37 10 loadbang;
#X text 182 5 reset;
#X obj 159 27 t b b b b b;
-#X msg 456 528 0 \, destroy;
-#X obj 456 583 gemhead;
-#X obj 456 628 world_light;
-#X msg 456 468 reset \, create \, lighting 1 \, 1;
-#X obj 52 380 t b;
-#N canvas 643 123 617 602 massrender 0;
-#X obj 127 22 inlet;
-#X obj 48 203 translateXYZ;
-#X obj 48 153 gemhead;
-#X obj 48 177 separator;
-#X obj 125 136 t b f;
-#X obj 127 57 unpack f f f f;
-#X obj 48 229 cube 0.03;
-#X obj 48 99 loadbang;
-#X msg 48 127 0;
-#X connect 0 0 5 0;
-#X connect 1 0 6 0;
-#X connect 2 0 3 0;
-#X connect 3 0 1 0;
-#X connect 4 0 2 0;
-#X connect 4 1 1 1;
-#X connect 5 1 4 0;
-#X connect 5 2 1 2;
-#X connect 5 3 1 3;
-#X connect 7 0 8 0;
-#X connect 8 0 2 0;
-#X restore 52 699 pd massrender;
-#X obj 52 357 gemhead;
-#X obj 456 548 gemwin;
-#X obj 52 655 msd3D --------------------------------;
-#X msg 456 508 view 8 0 0.5 0 0 0 0 0 1;
-#X text 434 160 <-- Number of masses;
-#X obj 456 487 t b;
-#X obj 52 678 route massesPos;
-#X msg 52 414 bang \, get massesPos;
-#X text 300 485 <-- Move masses;
-#X obj 456 605 rotateXYZ 30 30 0;
#X msg 213 116 mass fix 0 100 50 50 0;
-#X obj 75 491 metro 10;
-#X obj 76 469 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
-;
-#X floatatom 107 470 5 0 0 0 - - -;
-#X text 74 453 instead of GEM;
#N canvas 557 309 632 363 masses 0;
#X msg 417 145 seed 1;
#X msg 342 144 seed 2;
@@ -149,49 +119,96 @@
#X connect 11 0 3 0;
#X connect 12 0 10 1;
#X restore 159 191 pd links;
-#X obj 369 162 nbx 5 14 200 20000 1 0 empty empty empty 0 -6 0 10 -262144
--1 -1 200 1000;
#X msg 177 228 Xmax 4 \, Xmin -4 \, Ymax 4 \, Ymin -4 \, Zmax 4 \,
Zmin -4;
-#X msg 178 477 forceX mob 10;
-#X msg 179 501 forceX mob -10;
-#X msg 198 527 forceY mob 10;
-#X msg 197 551 forceY mob -10;
-#X msg 211 575 forceZ mob 10;
-#X msg 210 599 forceZ mob -10;
-#X connect 0 0 14 0;
-#X connect 1 0 5 0;
+#X obj 386 54 inlet;
+#X obj 232 7 inlet;
+#X obj 159 280 s \$0-msdin;
+#X connect 0 0 4 0;
+#X connect 1 0 11 0;
+#X connect 2 0 4 0;
+#X connect 4 0 7 0;
+#X connect 4 1 8 0;
+#X connect 4 2 6 0;
+#X connect 4 3 5 0;
+#X connect 4 4 1 0;
+#X connect 5 0 11 0;
+#X connect 6 0 11 0;
+#X connect 7 0 11 0;
+#X connect 8 0 11 0;
+#X connect 9 0 6 1;
+#X connect 9 0 7 1;
+#X connect 10 0 4 0;
+#X restore 20 32 pd creation;
+#X text 148 11 <-- Number of masses (change and reset);
+#N canvas 0 22 450 300 compute 0;
+#X obj 52 50 t b;
+#N canvas 643 123 617 602 massrender 0;
+#X obj 127 22 inlet;
+#X obj 48 203 translateXYZ;
+#X obj 48 153 gemhead;
+#X obj 48 177 separator;
+#X obj 125 136 t b f;
+#X obj 127 57 unpack f f f f;
+#X obj 48 229 cube 0.03;
+#X obj 48 99 loadbang;
+#X msg 48 127 0;
+#X connect 0 0 5 0;
+#X connect 1 0 6 0;
+#X connect 2 0 3 0;
+#X connect 3 0 1 0;
+#X connect 4 0 2 0;
+#X connect 4 1 1 1;
+#X connect 5 1 4 0;
+#X connect 5 2 1 2;
+#X connect 5 3 1 3;
+#X connect 7 0 8 0;
+#X connect 8 0 2 0;
+#X restore 52 209 pd massrender;
+#X obj 52 27 gemhead;
+#X obj 52 188 route massesPos;
+#X msg 52 84 bang \, get massesPos;
+#X obj 52 165 msd3D;
+#X obj 79 132 r \$0-msdin;
+#X connect 0 0 4 0;
#X connect 2 0 0 0;
-#X connect 3 0 5 0;
-#X connect 5 0 28 0;
-#X connect 5 1 30 0;
-#X connect 5 2 27 0;
-#X connect 5 3 22 0;
-#X connect 5 4 2 0;
+#X connect 3 0 1 0;
+#X connect 4 0 5 0;
+#X connect 5 0 3 0;
+#X connect 6 0 5 0;
+#X restore 20 53 pd compute;
+#X obj 206 196 s \$0-msdin;
+#N canvas 0 22 450 300 gem 0;
+#X msg 106 118 0 \, destroy;
+#X obj 86 173 gemhead;
+#X obj 86 218 world_light;
+#X msg 86 58 reset \, create \, lighting 1 \, 1;
+#X obj 86 138 gemwin;
+#X msg 86 98 view 8 0 0.5 0 0 0 0 0 1;
+#X obj 86 77 t b;
+#X obj 86 195 rotateXYZ 30 30 0;
+#X obj 83 10 inlet;
+#X obj 85 32 sel 1 0;
+#X connect 0 0 4 0;
+#X connect 1 0 7 0;
+#X connect 3 0 4 0;
+#X connect 3 0 6 0;
+#X connect 5 0 4 0;
+#X connect 6 0 5 0;
+#X connect 7 0 2 0;
+#X connect 8 0 9 0;
+#X connect 9 0 3 0;
+#X connect 9 1 0 0;
+#X restore 20 92 pd gem;
+#X obj 20 74 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 1
+;
+#X text 41 73 gem on/off;
+#X connect 0 0 10 0;
+#X connect 3 0 10 1;
+#X connect 4 0 13 0;
+#X connect 5 0 13 0;
#X connect 6 0 13 0;
-#X connect 7 0 21 0;
+#X connect 7 0 13 0;
+#X connect 8 0 13 0;
#X connect 9 0 13 0;
-#X connect 9 0 17 0;
-#X connect 10 0 19 0;
-#X connect 12 0 10 0;
-#X connect 14 0 18 0;
-#X connect 15 0 13 0;
-#X connect 17 0 15 0;
-#X connect 18 0 11 0;
-#X connect 19 0 14 0;
-#X connect 21 0 8 0;
-#X connect 22 0 0 0;
-#X connect 23 0 14 0;
-#X connect 24 0 23 0;
-#X connect 25 0 23 1;
-#X connect 27 0 0 0;
-#X connect 28 0 0 0;
-#X connect 29 0 27 1;
-#X connect 29 0 28 1;
-#X connect 30 0 0 0;
-#X connect 31 0 14 0;
-#X connect 32 0 14 0;
-#X connect 33 0 14 0;
-#X connect 34 0 14 0;
-#X connect 35 0 14 0;
-#X connect 36 0 14 0;
+#X connect 15 0 14 0;
diff --git a/msd3D/03_msd3Dmemb.pd b/msd3D/03_msd3Dmemb.pd
index 177d0bd..66309af 100644
--- a/msd3D/03_msd3Dmemb.pd
+++ b/msd3D/03_msd3Dmemb.pd
@@ -1,18 +1,55 @@
-#N canvas 580 22 794 809 10;
+#N canvas 807 173 535 198 10;
+#X obj 26 16 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X text 50 15 reset;
+#X text 182 65 Add a constant force;
+#X msg 338 127 posZ fix \$1;
+#X text 337 86 Change altitude of corners;
+#N canvas 0 22 616 405 creation 0;
#X obj 32 13 loadbang;
-#X obj 294 641 print msd;
-#X obj 461 703 gemwin;
-#X msg 461 681 0 \, destroy;
-#X obj 688 623 gemhead;
-#X obj 688 646 world_light;
-#X obj 130 361 t a;
#X obj 129 18 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262131 -1
-1;
#X msg 202 59 reset;
#X text 167 19 reset;
-#X msg 65 500 setD souple 0.01;
-#X msg 65 520 setD souple 1;
-#X msg 196 521 setK souple 2;
+#X msg 148 229 Xmax 100 \, Xmin 0 \, Ymax 100 \, Ymin 0 \, Zmax 70
+\, Zmin 0;
+#X msg 130 255 0 4 \, 4 5 \, 5 6 \, 6 1 \, 7 8 \, 8 9 \, 9 10 \, 10
+11 \, 12 13 \, 13 14 \, 14 15 \, 15 16 \, 17 18 \, 18 19 \, 19 20 \,
+20 21 \, 2 22 \, 22 23 \, 23 24 \, 24 3 \, 0 7 \, 4 8 \, 5 9 \, 6 10
+\, 1 11 \, 7 12 \, 8 13 \, 9 14 \, 10 15 \, 11 16 \, 12 17 \, 13 18
+\, 14 19 \, 15 20 \, 16 21 \, 2 17 \, 18 22 \, 19 23 \, 20 24 \, 21
+3;
+#X msg 166 130 30 40 40 \, 30 50 40 \, 30 60 40 \, 40 30 40 \, 40 40
+40 \, 40 50 40 \, 40 60 40 \, 40 70 40 \, 50 30 40 \, 50 40 40 \, 50
+50 40 \, 50 60 40 \, 50 70 40 \, 60 30 40 \, 60 40 40 \, 60 50 40 \,
+60 60 40 \, 60 70 40 \, 70 40 40 \, 70 50 40 \, 70 60 40;
+#X msg 184 82 mass fix 0 100 30 30 40 \, mass fix 0 100 30 70 40 \,
+mass fix 0 100 70 30 40 \, mass fix 0 100 70 70 40;
+#X obj 130 38 t b b b b b;
+#X msg 166 193 mass mob 1 70 \$1 \$2 \$3;
+#X msg 130 335 link souple \$1 \$2 2 10;
+#X msg 71 72 posZ fix 70;
+#X obj 130 361 s \$0-msdin;
+#X obj 204 14 inlet;
+#X connect 0 0 8 0;
+#X connect 1 0 8 0;
+#X connect 2 0 12 0;
+#X connect 4 0 12 0;
+#X connect 5 0 10 0;
+#X connect 6 0 9 0;
+#X connect 7 0 12 0;
+#X connect 8 0 5 0;
+#X connect 8 0 11 0;
+#X connect 8 1 4 0;
+#X connect 8 2 6 0;
+#X connect 8 3 7 0;
+#X connect 8 4 2 0;
+#X connect 9 0 12 0;
+#X connect 10 0 12 0;
+#X connect 11 0 12 0;
+#X connect 13 0 8 0;
+#X restore 26 36 pd creation;
+#N canvas 0 22 450 300 compute 0;
#N canvas 613 332 591 562 linkrender 0;
#X obj 93 25 inlet;
#X obj 93 117 / 12.5;
@@ -86,95 +123,85 @@
#X connect 30 0 5 0;
#X connect 31 0 32 0;
#X connect 32 0 29 0;
-#X restore 33 666 pd linkrender;
-#X obj 33 616 msd3D --------------------------------;
-#X msg 62 559 forceZ mob 200;
-#X msg 148 229 Xmax 100 \, Xmin 0 \, Ymax 100 \, Ymin 0 \, Zmax 70
-\, Zmin 0;
-#X msg 130 255 0 4 \, 4 5 \, 5 6 \, 6 1 \, 7 8 \, 8 9 \, 9 10 \, 10
-11 \, 12 13 \, 13 14 \, 14 15 \, 15 16 \, 17 18 \, 18 19 \, 19 20 \,
-20 21 \, 2 22 \, 22 23 \, 23 24 \, 24 3 \, 0 7 \, 4 8 \, 5 9 \, 6 10
-\, 1 11 \, 7 12 \, 8 13 \, 9 14 \, 10 15 \, 11 16 \, 12 17 \, 13 18
-\, 14 19 \, 15 20 \, 16 21 \, 2 17 \, 18 22 \, 19 23 \, 20 24 \, 21
-3;
-#X msg 166 130 30 40 40 \, 30 50 40 \, 30 60 40 \, 40 30 40 \, 40 40
-40 \, 40 50 40 \, 40 60 40 \, 40 70 40 \, 50 30 40 \, 50 40 40 \, 50
-50 40 \, 50 60 40 \, 50 70 40 \, 60 30 40 \, 60 40 40 \, 60 50 40 \,
-60 60 40 \, 60 70 40 \, 70 40 40 \, 70 50 40 \, 70 60 40;
-#X msg 461 656 view 0 4 0 0 0 0 0 0 1;
-#X msg 461 614 view 4 0 0.5 0 0 0 0 0 1;
-#X obj 312 479 f;
-#X floatatom 328 456 5 0 0 0 - - -;
-#X obj 312 403 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
-1;
-#X msg 312 504 forceZ mob \$1;
-#X obj 312 423 metro 65;
-#X msg 461 635 view 0 0 4 0 0 0 0 1 0;
-#X text 370 401 Add a constant force;
-#X obj 33 641 route linksPos;
-#X msg 184 82 mass fix 0 100 30 30 40 \, mass fix 0 100 30 70 40 \,
-mass fix 0 100 70 30 40 \, mass fix 0 100 70 70 40;
-#X msg 527 543 posZ fix \$1;
-#X obj 527 402 vsl 15 128 0 70 0 0 empty empty empty 0 -8 0 8 -262131
--1 -1 10900 1;
-#X text 559 457 Change altitude of corners;
-#X text 385 455 Amplitude;
-#X text 357 587 Create window;
-#X text 369 636 Change view;
-#X obj 130 38 t b b b b b;
-#X text 98 428 Multiple draw;
-#X msg 188 560 forceZ mob -0.1;
-#X msg 166 193 mass mob 1 70 \$1 \$2 \$3;
-#X msg 461 590 reset \, dimen 800 800 \, create \, lighting 1 \, 1
-;
-#X msg 130 335 link souple \$1 \$2 2 10;
-#X msg 196 501 setK souple 10;
-#X msg 71 72 posZ fix 70;
-#X obj 33 399 gemhead 15;
-#X msg 33 462 bang \, get linksPos;
-#X obj 33 427 t b b b;
-#X connect 0 0 36 0;
+#X restore 33 225 pd linkrender;
+#X obj 33 200 route linksPos;
+#X text 98 93 Multiple draw;
+#X obj 33 64 gemhead 15;
+#X msg 33 127 bang \, get linksPos;
+#X obj 33 92 t b b b b;
+#X obj 33 175 msd3D;
+#X obj 75 148 r \$0-msdin;
+#X connect 1 0 0 0;
+#X connect 3 0 5 0;
+#X connect 4 0 6 0;
+#X connect 5 0 4 0;
+#X connect 5 1 4 0;
+#X connect 5 2 4 0;
+#X connect 5 3 4 0;
+#X connect 6 0 1 0;
+#X connect 7 0 6 0;
+#X restore 26 59 pd compute;
+#X text 182 23 membrane with a multiple drawing;
+#N canvas 0 22 450 300 constant 0;
+#X obj 122 129 f;
+#X msg 122 154 forceZ mob \$1;
+#X obj 122 73 metro 65;
+#X obj 122 25 inlet;
+#X obj 225 25 inlet;
+#X obj 122 180 s \$0-msdin;
+#X connect 0 0 1 0;
+#X connect 1 0 5 0;
+#X connect 2 0 0 0;
#X connect 3 0 2 0;
-#X connect 4 0 5 0;
-#X connect 6 0 14 0;
-#X connect 7 0 36 0;
-#X connect 8 0 6 0;
-#X connect 10 0 14 0;
-#X connect 11 0 14 0;
-#X connect 12 0 14 0;
-#X connect 14 0 28 0;
-#X connect 14 1 1 0;
-#X connect 15 0 14 0;
-#X connect 16 0 6 0;
-#X connect 17 0 41 0;
-#X connect 18 0 39 0;
-#X connect 19 0 2 0;
-#X connect 20 0 2 0;
-#X connect 21 0 24 0;
-#X connect 22 0 21 1;
-#X connect 23 0 25 0;
-#X connect 24 0 14 0;
-#X connect 25 0 21 0;
-#X connect 26 0 2 0;
-#X connect 28 0 13 0;
-#X connect 29 0 6 0;
-#X connect 30 0 14 0;
-#X connect 31 0 30 0;
-#X connect 36 0 17 0;
-#X connect 36 0 43 0;
-#X connect 36 1 16 0;
-#X connect 36 2 18 0;
-#X connect 36 3 29 0;
-#X connect 36 3 13 2;
-#X connect 36 4 8 0;
-#X connect 38 0 14 0;
-#X connect 39 0 6 0;
-#X connect 40 0 2 0;
-#X connect 41 0 6 0;
-#X connect 42 0 14 0;
-#X connect 43 0 6 0;
-#X connect 44 0 46 0;
-#X connect 45 0 14 0;
-#X connect 46 0 45 0;
-#X connect 46 1 45 0;
-#X connect 46 2 45 0;
+#X connect 4 0 0 1;
+#X restore 183 126 pd constant;
+#X obj 183 83 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
+;
+#X text 221 82 on/off;
+#X floatatom 183 104 5 0 0 0 - - -;
+#N canvas 583 304 450 300 gem 0;
+#X obj 101 220 gemwin;
+#X msg 120 102 0 \, destroy;
+#X obj 13 211 gemhead;
+#X obj 13 234 world_light;
+#X msg 219 198 view 0 4 0 0 0 0 0 0 1;
+#X msg 219 156 view 4 0 0.5 0 0 0 0 0 1;
+#X msg 219 177 view 0 0 4 0 0 0 0 1 0;
+#X text -3 77 Create window;
+#X text 9 126 Change view;
+#X msg 101 80 reset \, dimen 800 800 \, create \, lighting 1 \, 1;
+#X obj 101 17 inlet;
+#X obj 101 47 sel 1 0;
+#X obj 219 104 inlet;
+#X obj 219 134 sel 2 1 0;
+#X connect 1 0 0 0;
+#X connect 2 0 3 0;
+#X connect 4 0 0 0;
+#X connect 5 0 0 0;
+#X connect 6 0 0 0;
+#X connect 9 0 0 0;
+#X connect 10 0 11 0;
+#X connect 11 0 9 0;
+#X connect 11 1 1 0;
+#X connect 12 0 13 0;
+#X connect 13 0 5 0;
+#X connect 13 1 6 0;
+#X connect 13 2 4 0;
+#X restore 26 135 pd gem;
+#X obj 26 87 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 1
+;
+#X text 79 84 gem on/off;
+#X obj 26 111 hradio 15 1 0 3 empty empty empty 0 -8 0 10 -262144 -1
+-1 1;
+#X text 79 110 change view;
+#X obj 341 107 hsl 128 15 0 127 0 0 empty empty empty -2 -8 0 10 -262144
+-1 -1 0 1;
+#X text 221 103 amplitude;
+#X obj 338 150 s \$0-msdin;
+#X connect 0 0 5 0;
+#X connect 3 0 19 0;
+#X connect 9 0 8 0;
+#X connect 11 0 8 1;
+#X connect 13 0 12 0;
+#X connect 15 0 12 1;
+#X connect 17 0 3 0;
diff --git a/msd3D/04_msd3Dfilet.pd b/msd3D/04_msd3Dfilet.pd
index db41039..03c5b64 100644
--- a/msd3D/04_msd3Dfilet.pd
+++ b/msd3D/04_msd3Dfilet.pd
@@ -1,18 +1,70 @@
-#N canvas 579 22 867 806 10;
-#X obj 32 13 loadbang;
-#X obj 458 439 gemwin;
-#X msg 458 417 0 \, destroy;
-#X obj 457 469 gemhead;
-#X obj 457 492 world_light;
-#X msg 458 328 reset \, create \, lighting 1 \, 1;
-#X obj 145 205 t a;
-#X obj 144 18 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262131 -1
+#N canvas 719 216 416 177 10;
+#X obj 26 32 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
+#X text 47 31 reset;
+#N canvas 530 297 450 300 gem 0;
+#X obj 101 220 gemwin;
+#X msg 120 102 0 \, destroy;
+#X obj 13 211 gemhead;
+#X obj 13 234 world_light;
+#X msg 101 80 reset \, dimen 800 800 \, create \, lighting 1 \, 1;
+#X obj 101 17 inlet;
+#X obj 101 47 sel 1 0;
+#X obj 219 104 inlet;
+#X obj 219 134 sel 2 1 0;
+#X msg 219 177 view 0 0 2 0 0 0 0 1 0;
+#X msg 219 198 view 0 4 4 0 0 0 0 0 1;
+#X msg 219 156 view 2 0 3.5 0 0 0 0 0 1;
+#X connect 1 0 0 0;
+#X connect 2 0 3 0;
+#X connect 4 0 0 0;
+#X connect 5 0 6 0;
+#X connect 6 0 4 0;
+#X connect 6 1 1 0;
+#X connect 7 0 8 0;
+#X connect 8 0 11 0;
+#X connect 8 1 9 0;
+#X connect 8 2 10 0;
+#X connect 9 0 0 0;
+#X connect 10 0 0 0;
+#X connect 11 0 0 0;
+#X restore 26 135 pd gem;
+#X obj 26 87 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 1
+;
+#X text 79 84 gem on/off;
+#X obj 26 111 hradio 15 1 0 3 empty empty empty 0 -8 0 10 -262144 -1
+-1 0;
+#X text 79 110 change view;
+#N canvas 0 22 584 305 creation 0;
#X msg 203 63 reset;
-#X text 182 19 reset;
-#X obj 33 298 gemhead;
-#X obj 33 321 t b;
-#X msg 33 343 bang \, get massesPos \, get linksPos;
+#X msg 203 83 symbol reset;
+#X msg 145 173 Xmax 100 \, Xmin 0 \, Ymax 100 \, Ymin 0 \, Zmax 70
+\, Zmin -40;
+#X msg 164 140 setFixed 62 \, setFixed 87 \, setFixed 512 \, setFixed
+537;
+#X obj 183 113 filet 20 30 2 2 20 30;
+#X obj 145 38 t b b b b;
+#X text 383 114 Filet abstraction : x0 y0 stepx stepy ny nx;
+#X obj 94 15 loadbang;
+#X obj 150 14 inlet;
+#X obj 145 205 s \$0-msdin;
+#X connect 0 0 9 0;
+#X connect 1 0 4 1;
+#X connect 2 0 9 0;
+#X connect 3 0 9 0;
+#X connect 4 0 9 0;
+#X connect 5 0 2 0;
+#X connect 5 1 3 0;
+#X connect 5 2 4 0;
+#X connect 5 3 0 0;
+#X connect 5 3 1 0;
+#X connect 7 0 5 0;
+#X connect 8 0 5 0;
+#X restore 26 52 pd creation;
+#N canvas 0 22 563 472 compute 0;
+#X obj 33 28 gemhead;
+#X obj 33 51 t b;
+#X msg 33 73 bang \, get massesPos \, get linksPos;
#N canvas 643 123 613 598 massrender 0;
#X obj 130 9 inlet;
#X obj 48 203 translateXYZ;
@@ -46,7 +98,7 @@
#X connect 12 3 10 0;
#X connect 13 0 14 0;
#X connect 14 0 7 0;
-#X restore 114 589 pd massrender;
+#X restore 114 359 pd massrender;
#N canvas 284 227 595 566 linkrender 0;
#X obj 93 25 inlet;
#X obj 93 117 / 12.5;
@@ -101,48 +153,36 @@
#X connect 21 6 16 0;
#X connect 22 0 23 0;
#X connect 23 0 5 0;
-#X restore 33 610 pd linkrender;
-#X obj 33 539 route linksPos massesPos;
-#X msg 203 83 symbol reset;
-#X obj 33 497 msd3D --------------------------------;
-#X msg 107 430 forceZ filet -0.2;
-#X msg 145 173 Xmax 100 \, Xmin 0 \, Ymax 100 \, Ymin 0 \, Zmax 70
-\, Zmin -40;
-#X msg 164 140 setFixed 62 \, setFixed 87 \, setFixed 512 \, setFixed
-537;
-#X obj 183 113 filet 20 30 2 2 20 30;
-#X msg 458 349 view 4 0 0.5 0 0 0 0 0 1;
-#X text 187 408 Ambient force;
-#X text 648 380 Select view;
-#X obj 145 38 t b b b b;
-#X text 244 587 Connect mass or link to be viewed \, or both with good
-computer!;
-#X text 383 114 Filet abstraction : x0 y0 stepx stepy ny nx;
-#X msg 458 371 view 0 0 2 0 0 0 0 1 0;
-#X msg 458 392 view 0 4 4 0 0 0 0 0 1;
-#X connect 0 0 25 0;
-#X connect 2 0 1 0;
-#X connect 3 0 4 0;
-#X connect 5 0 1 0;
-#X connect 6 0 17 0;
-#X connect 7 0 25 0;
-#X connect 8 0 6 0;
-#X connect 10 0 11 0;
-#X connect 11 0 12 0;
-#X connect 12 0 18 0;
-#X connect 12 0 17 0;
-#X connect 15 1 13 0;
-#X connect 16 0 21 1;
-#X connect 17 0 15 0;
-#X connect 18 0 17 0;
-#X connect 19 0 6 0;
-#X connect 20 0 6 0;
-#X connect 21 0 6 0;
-#X connect 22 0 1 0;
-#X connect 25 0 19 0;
-#X connect 25 1 20 0;
-#X connect 25 2 21 0;
-#X connect 25 3 8 0;
-#X connect 25 3 16 0;
-#X connect 28 0 1 0;
-#X connect 29 0 1 0;
+#X restore 33 380 pd linkrender;
+#X obj 33 269 route linksPos massesPos;
+#X msg 46 145 forceZ filet -0.2;
+#X text 61 122 Ambient force;
+#X obj 47 188 r \$0-msdin;
+#X obj 147 296 inlet;
+#X obj 114 337 spigot;
+#X obj 33 341 spigot 1;
+#X obj 78 318 == 0;
+#X obj 33 227 msd3D;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 2 0 6 0;
+#X connect 2 0 13 0;
+#X connect 5 0 11 0;
+#X connect 5 1 10 0;
+#X connect 6 0 13 0;
+#X connect 8 0 13 0;
+#X connect 9 0 10 1;
+#X connect 9 0 12 0;
+#X connect 10 0 3 0;
+#X connect 11 0 4 0;
+#X connect 12 0 11 1;
+#X connect 13 0 5 0;
+#X restore 204 131 pd compute;
+#X obj 204 106 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X text 225 105 display links or masses;
+#X text 201 27 grid in a gravity field;
+#X connect 0 0 7 0;
+#X connect 3 0 2 0;
+#X connect 5 0 2 1;
+#X connect 9 0 8 0;
diff --git a/msd3D/05_msd3Dvline.pd b/msd3D/05_msd3Dvline.pd
index d0893c7..632d238 100644
--- a/msd3D/05_msd3Dvline.pd
+++ b/msd3D/05_msd3Dvline.pd
@@ -1,34 +1,56 @@
-#N canvas 799 61 800 658 10;
+#N canvas 711 237 465 154 10;
+#N canvas 530 297 450 300 gem 0;
+#X obj 101 220 gemwin;
+#X msg 120 102 0 \, destroy;
+#X obj 13 211 gemhead;
+#X obj 13 234 world_light;
+#X msg 101 80 reset \, dimen 800 800 \, create \, lighting 1 \, 1;
+#X obj 101 17 inlet;
+#X obj 101 47 sel 1 0;
+#X msg 219 156 view 0 0 11 0 0 0 1 0 0;
+#X connect 1 0 0 0;
+#X connect 2 0 3 0;
+#X connect 4 0 0 0;
+#X connect 4 0 7 0;
+#X connect 5 0 6 0;
+#X connect 6 0 4 0;
+#X connect 6 1 1 0;
+#X connect 7 0 0 0;
+#X restore 14 85 pd gem;
+#X obj 14 62 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1
+;
+#X text 33 60 gem on/off;
+#N canvas 0 22 563 316 creation 0;
#X obj 32 13 loadbang;
-#X obj 457 430 gemwin;
-#X msg 457 408 0 \, destroy;
-#X obj 288 577 gemhead;
-#X obj 288 599 world_light;
-#X obj 146 205 t a;
-#X obj 146 16 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262131 -1
--1;
#X msg 204 68 reset;
-#X obj 33 179 gemhead;
#X msg 204 88 symbol reset;
-#X obj 33 497 msd3D --------------------------------;
#X obj 146 42 t b b b b;
-#X msg 296 393 forceZ filet \$1;
-#X obj 444 207 tgl 20 0 empty empty empty 0 -6 0 8 -262131 -1 -1 1
-1;
-#X obj 444 258 f;
-#X obj 444 234 metro 65;
-#X msg 457 327 reset \, dimen 800 800 \, create \, lighting 1 \, 1
-;
-#X obj 421 221 vsl 15 128 -1 1 0 0 empty empty empty 0 -8 0 8 -262131
--1 -1 10000 1;
-#X obj 206 315 sin;
-#X obj 206 335 *;
-#X obj 206 255 counter 0 360;
-#X obj 206 204 tgl 20 0 empty empty empty 0 -6 0 8 -262131 -1 -1 1
-1;
-#X obj 206 275 / 3.6;
-#X obj 206 295 * 6.28319;
-#X obj 206 232 metro 35;
+#X msg 165 139 setFixed 0 \, setFixed 29 \, setFixed 420 \, setFixed
+449;
+#X obj 184 115 filet -3.2 -3.2 0.22068 0.45714 15 30;
+#X msg 146 173 Xmax 4 \, Xmin -4 \, Ymax 4 \, Ymin -4 \, Zmax 9 \,
+Zmin -6;
+#X obj 146 205 s \$0-msdin;
+#X obj 147 19 inlet;
+#X connect 0 0 3 0;
+#X connect 1 0 7 0;
+#X connect 2 0 5 1;
+#X connect 3 0 6 0;
+#X connect 3 1 4 0;
+#X connect 3 2 5 0;
+#X connect 3 3 1 0;
+#X connect 3 3 2 0;
+#X connect 4 0 7 0;
+#X connect 5 0 7 0;
+#X connect 6 0 7 0;
+#X connect 8 0 3 0;
+#X restore 14 38 pd creation;
+#X text 34 17 reset;
+#X obj 14 20 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#N canvas 0 22 450 300 compute 0;
+#X obj 33 23 gemhead;
+#X obj 33 201 msd3D --------------------------------;
#N canvas 646 294 504 533 getmmasses 0;
#X obj 154 13 inlet;
#X obj 152 238 outlet;
@@ -45,9 +67,7 @@
#X connect 4 0 3 1;
#X connect 5 0 3 1;
#X connect 6 0 3 0;
-#X restore 51 364 pd getmmasses;
-#X obj 183 219 vsl 15 128 0 30 0 0 empty empty empty 0 -8 0 8 -262131
--1 -1 5000 1;
+#X restore 60 116 pd getmmasses;
#N canvas 259 464 942 390 massrender 0;
#X obj 286 2 inlet;
#X obj 306 144 pack f f f f;
@@ -115,75 +135,75 @@
#X connect 12 0 4 0;
#X connect 13 0 14 0;
#X connect 14 0 12 0;
-#X restore 33 565 pd massrender;
-#X msg 165 139 setFixed 0 \, setFixed 29 \, setFixed 420 \, setFixed
-449;
-#X text 459 113 Filet abstraction : x0 y0 stepx stepy ny nx;
-#X text 483 206 <-- Add constant force;
-#X text 240 204 <-- Add sinus force;
-#X obj 457 348 t b;
-#X text 179 18 Reset;
-#X obj 184 115 filet -3.2 -3.2 0.22068 0.45714 15 30;
-#X msg 327 449 setK fil 20;
-#X obj 104 93 s resban;
-#X msg 425 449 setK fil 10;
-#X text 528 458 Change physical parameters of links;
-#X msg 457 388 view 0 0 5 0 0 0 1 0 0;
-#X text 624 390 <-- Zoom in;
-#X msg 51 388 get massesPos \$1;
-#X msg 146 173 Xmax 4 \, Xmin -4 \, Ymax 4 \, Ymin -4 \, Zmax 9 \,
-Zmin -6;
-#X msg 457 369 view 0 0 11 0 0 0 1 0 0;
-#X obj 33 257 t b b;
-#X msg 29 323 bang;
-#X text 154 365 Get masses in order;
-#X obj 33 539 route massesPosNo;
-#X msg 425 468 setD fil 25;
-#X msg 326 468 setD fil 2;
-#X connect 0 0 11 0;
-#X connect 2 0 1 0;
-#X connect 3 0 4 0;
-#X connect 5 0 10 0;
-#X connect 6 0 11 0;
-#X connect 7 0 5 0;
-#X connect 8 0 44 0;
-#X connect 9 0 34 1;
-#X connect 10 0 47 0;
-#X connect 11 0 42 0;
-#X connect 11 1 28 0;
-#X connect 11 2 34 0;
-#X connect 11 3 7 0;
-#X connect 11 3 9 0;
-#X connect 12 0 10 0;
-#X connect 13 0 15 0;
-#X connect 14 0 12 0;
-#X connect 15 0 14 0;
-#X connect 16 0 1 0;
-#X connect 16 0 32 0;
-#X connect 17 0 14 1;
-#X connect 18 0 19 0;
-#X connect 19 0 12 0;
-#X connect 20 0 22 0;
-#X connect 21 0 24 0;
-#X connect 22 0 23 0;
-#X connect 23 0 18 0;
-#X connect 24 0 20 0;
-#X connect 25 0 41 0;
-#X connect 26 0 19 1;
-#X connect 28 0 5 0;
-#X connect 32 0 43 0;
-#X connect 34 0 5 0;
-#X connect 35 0 10 0;
-#X connect 37 0 10 0;
-#X connect 39 0 1 0;
-#X connect 41 0 10 0;
-#X connect 42 0 5 0;
-#X connect 43 0 1 0;
-#X connect 44 0 25 0;
-#X connect 44 0 45 0;
-#X connect 44 1 25 0;
-#X connect 44 1 45 0;
-#X connect 45 0 10 0;
-#X connect 47 0 27 0;
-#X connect 48 0 10 0;
-#X connect 49 0 10 0;
+#X restore 33 253 pd massrender;
+#X msg 60 140 get massesPos \$1;
+#X obj 33 47 t b b;
+#X msg 33 75 bang;
+#X text 154 155 Get masses in order;
+#X obj 33 227 route massesPosNo;
+#X obj 60 162 r \$0-msdin;
+#X connect 0 0 5 0;
+#X connect 1 0 8 0;
+#X connect 2 0 4 0;
+#X connect 4 0 1 0;
+#X connect 5 0 2 0;
+#X connect 5 0 6 0;
+#X connect 5 1 2 0;
+#X connect 5 1 6 0;
+#X connect 6 0 1 0;
+#X connect 8 0 3 0;
+#X connect 9 0 1 0;
+#X restore 14 106 pd compute;
+#N canvas 0 22 450 300 sinus 0;
+#X msg 206 243 forceZ filet \$1;
+#X obj 116 165 sin;
+#X obj 116 185 *;
+#X obj 116 105 counter 0 360;
+#X obj 116 54 tgl 20 0 empty empty empty 0 -6 0 8 -262131 -1 -1 0 0.23622
+;
+#X obj 116 125 / 3.6;
+#X obj 116 145 * 6.28319;
+#X obj 116 82 metro 35;
+#X obj 93 69 vsl 15 128 0 30 0 0 empty empty empty 0 -8 0 8 -262131
+-1 -1 0 1;
+#X text 64 215 Get masses in order;
+#X obj 206 264 s \$0-msdin;
+#X obj 163 51 inlet;
+#X connect 0 0 10 0;
+#X connect 1 0 2 0;
+#X connect 2 0 0 0;
+#X connect 3 0 5 0;
+#X connect 4 0 7 0;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 3 0;
+#X connect 8 0 4 0;
+#X connect 11 0 2 1;
+#X connect 11 0 4 0;
+#X restore 150 106 pd sinus;
+#X obj 153 85 hsl 128 15 0 127 0 0 empty empty empty -2 -8 0 10 -262144
+-1 -1 0 1;
+#X text 149 66 add sinusoidal force;
+#X text 290 67 add constant force;
+#N canvas 0 22 450 300 constant 0;
+#X msg 176 111 forceZ filet \$1;
+#X obj 176 33 tgl 20 0 empty empty empty 0 -6 0 8 -262131 -1 -1 0 1
+;
+#X obj 176 84 f;
+#X obj 176 60 metro 65;
+#X obj 176 132 s \$0-msdin;
+#X obj 225 28 inlet;
+#X connect 0 0 4 0;
+#X connect 1 0 3 0;
+#X connect 2 0 0 0;
+#X connect 3 0 2 0;
+#X connect 5 0 1 0;
+#X connect 5 0 2 1;
+#X restore 292 105 pd constant;
+#X obj 295 85 hsl 128 15 0 127 0 0 empty empty empty -2 -8 0 10 -262144
+-1 -1 0 1;
+#X text 151 26 vertical lines under various forces;
+#X connect 1 0 0 0;
+#X connect 5 0 3 0;
+#X connect 8 0 7 0;
+#X connect 12 0 11 0;