aboutsummaryrefslogtreecommitdiff
path: root/msd2D/editor
diff options
context:
space:
mode:
Diffstat (limited to 'msd2D/editor')
-rw-r--r--msd2D/editor/gem_links.pd12
-rw-r--r--msd2D/editor/gem_masses.pd16
-rw-r--r--msd2D/editor/msd2d-editor.pd328
3 files changed, 231 insertions, 125 deletions
diff --git a/msd2D/editor/gem_links.pd b/msd2D/editor/gem_links.pd
index bc9dab3..fbdc961 100644
--- a/msd2D/editor/gem_links.pd
+++ b/msd2D/editor/gem_links.pd
@@ -1,7 +1,7 @@
#N canvas 0 0 906 731 10;
#X obj 141 31 inlet;
#X obj 125 308 gemhead;
-#X obj 109 369 separator;
+#X obj 109 389 separator;
#X obj 109 337 any;
#X obj 147 166 t b f;
#X obj 229 116 - 250;
@@ -16,10 +16,14 @@
#X obj 178 210 pack 0 0 0;
#X obj 255 189 pack 0 0 0;
#X obj 141 62 unpack 0 0 0 0 0;
+#X obj 248 322 inlet;
+#X obj 109 364 spigot;
+#X msg 247 300 1;
+#X obj 247 275 loadbang;
#X connect 0 0 16 0;
#X connect 1 0 3 1;
#X connect 2 0 13 0;
-#X connect 3 0 2 0;
+#X connect 3 0 18 0;
#X connect 4 0 3 0;
#X connect 4 1 14 0;
#X connect 5 0 8 0;
@@ -36,3 +40,7 @@
#X connect 16 2 5 0;
#X connect 16 3 10 0;
#X connect 16 4 9 0;
+#X connect 17 0 18 1;
+#X connect 18 0 2 0;
+#X connect 19 0 18 1;
+#X connect 20 0 19 0;
diff --git a/msd2D/editor/gem_masses.pd b/msd2D/editor/gem_masses.pd
index 7406e62..29716ba 100644
--- a/msd2D/editor/gem_masses.pd
+++ b/msd2D/editor/gem_masses.pd
@@ -1,8 +1,8 @@
#N canvas 308 314 667 612 10;
#X obj 141 31 inlet;
-#X obj 150 361 translateXYZ;
+#X obj 150 424 translateXYZ;
#X obj 107 205 gemhead;
-#X obj 150 330 separator;
+#X obj 150 393 separator;
#X obj 150 298 any;
#X obj 180 162 t b f;
#X obj 220 124 - 250;
@@ -12,12 +12,16 @@
#X msg 47 325 draw line;
#X obj 48 300 loadbang;
#X obj 141 61 unpack 0 0 0;
-#X obj 150 390 circle 0.05;
+#X obj 150 453 circle 0.05;
+#X obj 240 311 inlet;
+#X obj 150 362 spigot;
+#X msg 239 289 1;
+#X obj 239 264 loadbang;
#X connect 0 0 12 0;
#X connect 1 0 13 0;
#X connect 2 0 4 1;
#X connect 3 0 1 0;
-#X connect 4 0 3 0;
+#X connect 4 0 15 0;
#X connect 5 0 4 0;
#X connect 5 1 1 1;
#X connect 6 0 9 0;
@@ -28,3 +32,7 @@
#X connect 11 0 10 0;
#X connect 12 1 7 0;
#X connect 12 2 6 0;
+#X connect 14 0 15 1;
+#X connect 15 0 3 0;
+#X connect 16 0 15 1;
+#X connect 17 0 16 0;
diff --git a/msd2D/editor/msd2d-editor.pd b/msd2D/editor/msd2d-editor.pd
index 37a58be..44990cd 100644
--- a/msd2D/editor/msd2d-editor.pd
+++ b/msd2D/editor/msd2d-editor.pd
@@ -1,45 +1,60 @@
#N struct liaison float x1 float y1 float x2 float y2 float mid1 float
mid2 float lid;
#N struct mass float x float y float mid float mob;
-#N canvas 119 116 837 493 10;
-#N canvas 601 27 617 552 data 1;
-#X scalar liaison 160.067 196.866 175.068 187.056 9 6 0 \;;
-#X scalar liaison 122.843 187.056 137.844 196.866 5 12 1 \;;
-#X scalar liaison 164.966 167.633 149 100 11 0 2 \;;
-#X scalar liaison 149 100 133.946 167.633 0 10 3 \;;
-#X scalar mass 149 100 0 900 \;;
-#X scalar liaison 173.155 235.499 184.692 300 4 2 4 \;;
-#X scalar liaison 184.692 300 122.843 187.056 2 5 5 \;;
-#X scalar liaison 113.219 300 124.756 235.499 1 3 6 \;;
-#X scalar liaison 113.219 300 175.068 187.056 1 6 7 \;;
-#X scalar liaison 215.173 220.483 122.843 187.056 8 5 8 \;;
-#X scalar liaison 175.068 187.056 215.173 220.483 6 8 9 \;;
-#X scalar liaison 82.7376 220.483 175.068 187.056 7 6 10 \;;
-#X scalar liaison 122.843 187.056 82.7376 220.483 5 7 11 \;;
-#X scalar liaison 175.068 187.056 122.843 187.056 6 5 12 \;;
-#X scalar liaison 124.756 235.499 173.155 235.499 3 4 13 \;;
-#X scalar liaison 122.843 187.056 124.756 235.499 5 3 14 \;;
-#X scalar liaison 173.155 235.499 122.843 187.056 4 5 15 \;;
-#X scalar liaison 175.068 187.056 173.155 235.499 6 4 16 \;;
-#X scalar liaison 124.756 235.499 175.068 187.056 3 6 17 \;;
-#X scalar liaison 133.946 167.633 164.966 167.633 10 11 18 \;;
-#X scalar liaison 133.946 167.633 137.844 196.866 10 12 19 \;;
-#X scalar liaison 137.844 196.866 160.067 196.866 12 9 20 \;;
-#X scalar liaison 164.966 167.633 137.844 196.866 11 12 21 \;;
-#X scalar liaison 160.067 196.866 164.966 167.633 9 11 22 \;;
-#X scalar liaison 133.946 167.633 160.067 196.866 10 9 23 \;;
-#X scalar mass 113.219 300 1 0 \;;
-#X scalar mass 184.692 300 2 0 \;;
-#X scalar mass 124.756 235.499 3 0 \;;
-#X scalar mass 173.155 235.499 4 0 \;;
-#X scalar mass 122.843 187.056 5 0 \;;
-#X scalar mass 175.068 187.056 6 0 \;;
-#X scalar mass 82.7376 220.483 7 0 \;;
-#X scalar mass 215.173 220.483 8 0 \;;
-#X scalar mass 160.067 196.866 9 0 \;;
-#X scalar mass 133.946 167.633 10 0 \;;
-#X scalar mass 164.966 167.633 11 0 \;;
-#X scalar mass 137.844 196.866 12 0 \;;
+#N canvas 130 52 866 562 10;
+#N canvas 646 78 617 552 data 1;
+#X scalar liaison 386 335 554.217 315.951 5 4 0 \;;
+#X scalar liaison 386 335 483.451 302.088 5 3 1 \;;
+#X scalar liaison 386 335 542.942 397.172 5 2 2 \;;
+#X scalar liaison 386 335 471.048 384.162 5 1 3 \;;
+#X scalar liaison 386 335 510.362 348.227 5 0 4 \;;
+#X scalar liaison 483.451 302.088 554.217 315.951 3 4 5 \;;
+#X scalar liaison 542.942 397.172 554.217 315.951 2 4 6 \;;
+#X scalar liaison 542.942 397.172 483.451 302.088 2 3 7 \;;
+#X scalar liaison 471.048 384.162 554.217 315.951 1 4 8 \;;
+#X scalar liaison 471.048 384.162 483.451 302.088 1 3 9 \;;
+#X scalar liaison 471.048 384.162 542.942 397.172 1 2 10 \;;
+#X scalar liaison 510.362 348.227 554.217 315.951 0 4 11 \;;
+#X scalar liaison 510.362 348.227 483.451 302.088 0 3 12 \;;
+#X scalar liaison 510.362 348.227 542.942 397.172 0 2 13 \;;
+#X scalar liaison 510.362 348.227 471.048 384.162 0 1 14 \;;
+#X scalar mass 510.362 348.227 0 0 \;;
+#X scalar mass 471.048 384.162 1 0 \;;
+#X scalar mass 542.942 397.172 2 0 \;;
+#X scalar mass 483.451 302.088 3 0 \;;
+#X scalar mass 554.217 315.951 4 0 \;;
+#X scalar liaison 386 335 282.685 380.849 5 9 15 \;;
+#X scalar liaison 386 335 226.466 325.267 5 8 16 \;;
+#X scalar liaison 386 335 232.252 383.194 5 7 17 \;;
+#X scalar liaison 386 335 277.513 320.772 5 6 18 \;;
+#X scalar mass 386 335 5 900 \;;
+#X scalar liaison 226.466 325.267 282.685 380.849 8 9 19 \;;
+#X scalar liaison 232.252 383.194 282.685 380.849 7 9 20 \;;
+#X scalar liaison 232.252 383.194 226.466 325.267 7 8 21 \;;
+#X scalar liaison 277.513 320.772 282.685 380.849 6 9 22 \;;
+#X scalar liaison 277.513 320.772 226.466 325.267 6 8 23 \;;
+#X scalar liaison 277.513 320.772 232.252 383.194 6 7 24 \;;
+#X scalar mass 277.513 320.772 6 0 \;;
+#X scalar mass 232.252 383.194 7 0 \;;
+#X scalar mass 226.466 325.267 8 0 \;;
+#X scalar mass 282.685 380.849 9 0 \;;
+#X scalar liaison 492.618 194.572 547 192 17 18 25 \;;
+#X scalar liaison 448.193 194.961 492.618 194.572 16 17 26 \;;
+#X scalar liaison 372.637 195.077 448.193 194.961 15 16 27 \;;
+#X scalar liaison 306.912 195.418 372.637 195.077 14 15 28 \;;
+#X scalar liaison 250.927 195.237 306.912 195.418 13 14 29 \;;
+#X scalar liaison 164.149 186.68 250.927 195.237 12 13 30 \;;
+#X scalar liaison 108.003 172.599 164.149 186.68 11 12 31 \;;
+#X scalar liaison 53 173 108.003 172.599 10 11 32 \;;
+#X scalar mass 53 173 10 900 \;;
+#X scalar mass 108.003 172.599 11 0 \;;
+#X scalar mass 164.149 186.68 12 0 \;;
+#X scalar mass 250.927 195.237 13 0 \;;
+#X scalar mass 306.912 195.418 14 0 \;;
+#X scalar mass 372.637 195.077 15 0 \;;
+#X scalar mass 448.193 194.961 16 0 \;;
+#X scalar mass 492.618 194.572 17 0 \;;
+#X scalar mass 547 192 18 900 \;;
#X restore 106 64 pd data;
#X obj 274 105 keyup;
#X obj 274 150 select 108;
@@ -47,11 +62,11 @@ mid2 float lid;
#X obj 274 126 spigot;
#X obj 311 82 tgl 20 0 empty empty add_links_with_L 0 -6 0 8 -24198
-1 -1 0 1;
-#X obj 70 439 structures;
+#X obj 56 517 structures;
#X msg 54 138 \; pd-data clear;
-#X obj 58 214 bng 24 250 50 0 empty \$0-generate generate 0 -6 0 8
+#X obj 60 298 bng 24 250 50 0 empty \$0-generate generate 0 -6 0 8
-24198 -1 -1;
-#X text 74 417 Data Struct Definitions;
+#X text 57 493 Data Struct Definitions;
#N canvas 460 399 104 45 save 0;
#X obj 2 3 cnv 15 100 40 empty empty empty 20 12 0 14 -228992 -66577
0;
@@ -83,14 +98,12 @@ mid2 float lid;
#X coords 0 0 1 1 102 44 1;
#X restore 55 88 pd save;
#X text 31 61 Edit here:;
-#N canvas 0 0 781 748 generator 0;
+#N canvas 564 255 781 748 generator 0;
#N canvas 210 99 931 555 getter 0;
#X obj 244 89 inlet;
#X obj 244 141 outlet;
#X text 91 57 First build masses \, then links!!;
#X obj 148 281 outlet;
-#X obj 547 456 table \$0-mid;
-#X obj 531 482 table \$0-msdid;
#N canvas 403 15 685 826 fix-mass-ids 0;
#X obj 139 158 t b b b b b b b;
#X msg 175 254 traverse pd-data \, next;
@@ -169,7 +182,6 @@ mid2 float lid;
#X connect 10 5 7 2;
#X connect 11 0 0 0;
#X restore 330 200 pd fix-links;
-#X obj 505 510 table \$0-mid2msdid;
#N canvas 0 0 920 707 get-masses 0;
#X obj 228 162 t b b b b b b b;
#X msg 264 258 traverse pd-data \, next;
@@ -248,25 +260,21 @@ mid2 float lid;
#X msg 156 203 next;
#X msg 194 204 traverse pd-data \, bang;
#X obj 126 251 t b p;
-#X obj 357 240 print endmasses;
-#X obj 194 177 r \$0-make-links;
#X obj 174 351 outlet;
-#X obj 191 147 inlet;
+#X obj 194 147 inlet;
#X obj 388 303 outlet;
#X text 440 302 Now set lid field of links.;
#X connect 0 0 1 0;
#X connect 0 1 1 1;
-#X connect 1 0 8 0;
+#X connect 1 0 6 0;
#X connect 2 0 5 0;
#X connect 2 1 3 0;
-#X connect 2 2 10 0;
+#X connect 2 2 8 0;
#X connect 3 0 2 0;
#X connect 4 0 2 0;
-#X connect 4 0 6 0;
#X connect 5 0 3 0;
#X connect 5 1 0 0;
#X connect 7 0 4 0;
-#X connect 9 0 4 0;
#X restore 148 257 pd make-links;
#N canvas 0 0 590 588 get-ids-from-msd 0;
#X obj 176 209 r \$0-msd-attr;
@@ -372,21 +380,23 @@ turn and crashed the car and left the toilet seat open.;
#X connect 14 1 12 0;
#X restore 234 286 pd set-lid;
#X text 314 284 Correct lids to match what msd2D tells us;
-#X connect 0 0 9 0;
-#X connect 6 0 7 0;
-#X connect 7 0 10 0;
-#X connect 9 0 1 0;
-#X connect 9 1 11 0;
-#X connect 10 0 3 0;
-#X connect 10 1 21 0;
-#X connect 11 0 6 0;
+#X obj 475 458 table \$0-mid 4000;
+#X obj 459 484 table \$0-msdid 4000;
+#X obj 433 512 table \$0-mid2msdid 4000;
+#X connect 0 0 6 0;
+#X connect 4 0 5 0;
+#X connect 5 0 7 0;
+#X connect 6 0 1 0;
+#X connect 6 1 8 0;
+#X connect 7 0 3 0;
+#X connect 7 1 18 0;
+#X connect 8 0 4 0;
#X restore 131 221 pd getter;
#X obj 131 369 s \$0-msd;
#X msg 175 154 reset;
#X obj 175 200 s \$0-msd;
#X msg 175 175 Xmin 0 \, Xmax 800 \, Ymin 0 \, Ymax 800;
#X msg 239 300 mass fix 0 100 \$1 \$2;
-#X msg 189 275 mass id \$4 100 \$1 \$2;
#X obj 112 132 t b b b b;
#N canvas 376 279 682 601 make-setters 0;
#X obj 236 443 s pd-setter;
@@ -438,20 +448,21 @@ turn and crashed the car and left the toilet seat open.;
#X restore 112 401 pd make-setters;
#X obj 201 354 r pointer2msd;
#X obj 112 91 inlet;
-#X msg 131 326 link ml \$1 \$2 10 2.5 1.5;
+#X msg 189 275 mass id \$4 100 \$1 \$2;
+#X msg 131 324 link ml \$1 \$2 10 2.5 1.5;
#X connect 0 0 11 0;
-#X connect 0 1 6 0;
+#X connect 0 1 10 0;
#X connect 2 0 3 0;
#X connect 4 0 3 0;
-#X connect 6 0 1 0;
-#X connect 7 0 8 0;
-#X connect 7 1 0 0;
-#X connect 7 2 4 0;
-#X connect 7 3 2 0;
-#X connect 9 0 1 0;
-#X connect 10 0 7 0;
+#X connect 6 0 7 0;
+#X connect 6 1 0 0;
+#X connect 6 2 4 0;
+#X connect 6 3 2 0;
+#X connect 8 0 1 0;
+#X connect 9 0 6 0;
+#X connect 10 0 1 0;
#X connect 11 0 1 0;
-#X restore 58 245 pd generator;
+#X restore 60 329 pd generator;
#N canvas 0 0 718 819 activate 0;
#X obj 233 284 msd2D;
#X obj 233 215 r \$0-msd;
@@ -495,6 +506,8 @@ turn and crashed the car and left the toilet seat open.;
#X obj 231 648 outlet;
#X obj 57 493 outlet;
#X obj 167 92 metro 20;
+#X obj 413 395 r \$0-gem-masses-on;
+#X obj 413 417 r \$0-gem-links-on;
#X connect 0 0 9 0;
#X connect 0 0 14 0;
#X connect 0 1 17 0;
@@ -536,13 +549,15 @@ turn and crashed the car and left the toilet seat open.;
#X connect 35 0 37 0;
#X connect 36 0 38 0;
#X connect 39 0 24 0;
-#X restore 59 330 pd activate;
-#X obj 59 294 tgl 24 0 empty empty GEM 0 -6 0 8 -233017 -1 -1 0 1;
-#X obj 95 294 tgl 24 0 empty empty Graphical_Datastructures 0 -6 0
+#X connect 40 0 5 1;
+#X connect 41 0 6 1;
+#X restore 61 414 pd activate;
+#X obj 61 378 tgl 24 0 empty empty GEM 0 -6 0 8 -233017 -1 -1 0 1;
+#X obj 97 378 tgl 24 0 empty empty Graphical_Datastructures 0 -6 0
8 -1 -262144 -1 0 1;
#X text 426 173 "L" is only active \, if the green toggle is set to
on. Otherwise use the yellow "link" bang.;
-#X text 261 222 Press "generate" to generate messages to msd2D and
+#X text 263 306 Press "generate" to generate messages to msd2D and
create the physical model inside.;
#N canvas 0 0 751 433 ignore 0;
#X obj 102 264 print ToMSD;
@@ -556,45 +571,60 @@ create the physical model inside.;
#X obj 281 267 print FromMSD;
#X obj 281 212 r \$0-msd-out;
#N canvas 0 0 578 686 setter 0;
-#X obj 137 196 mass-set 12;
-#X obj 164 167 mass-set 11;
-#X obj 133 167 mass-set 10;
-#X obj 160 196 mass-set 9;
-#X obj 215 220 mass-set 8;
-#X obj 82 220 mass-set 7;
-#X obj 175 187 mass-set 6;
-#X obj 122 187 mass-set 5;
-#X obj 173 235 mass-set 4;
-#X obj 124 235 mass-set 3;
-#X obj 184 300 mass-set 2;
-#X obj 113 300 mass-set 1;
-#X obj 149 100 mass-set 0;
+#X obj 547 192 mass-set 18;
+#X obj 494 195 mass-set 17;
+#X obj 451 195 mass-set 16;
+#X obj 377 195 mass-set 15;
+#X obj 313 195 mass-set 14;
+#X obj 259 198 mass-set 13;
+#X obj 174 193 mass-set 12;
+#X obj 119 184 mass-set 11;
+#X obj 67 193 mass-set 10;
+#X obj 278 397 mass-set 9;
+#X obj 233 332 mass-set 8;
+#X obj 228 390 mass-set 7;
+#X obj 284 337 mass-set 6;
+#X obj 388 371 mass-set 5;
+#X obj 552 329 mass-set 4;
+#X obj 480 325 mass-set 3;
+#X obj 552 411 mass-set 2;
+#X obj 479 408 mass-set 1;
+#X obj 513 367 mass-set 0;
#X restore 305 122 pd setter;
#N canvas 0 0 822 675 lsetter 0;
-#X obj 133 167 link-set 23;
-#X obj 160 196 link-set 22;
-#X obj 164 167 link-set 21;
-#X obj 137 196 link-set 20;
-#X obj 133 167 link-set 19;
-#X obj 133 167 link-set 18;
-#X obj 124 235 link-set 17;
-#X obj 175 187 link-set 16;
-#X obj 173 235 link-set 15;
-#X obj 122 187 link-set 14;
-#X obj 124 235 link-set 13;
-#X obj 175 187 link-set 12;
-#X obj 122 187 link-set 11;
-#X obj 82 220 link-set 10;
-#X obj 175 187 link-set 9;
-#X obj 215 220 link-set 8;
-#X obj 113 300 link-set 7;
-#X obj 113 300 link-set 6;
-#X obj 184 300 link-set 5;
-#X obj 173 235 link-set 4;
-#X obj 149 100 link-set 3;
-#X obj 164 167 link-set 2;
-#X obj 122 187 link-set 1;
-#X obj 160 196 link-set 0;
+#X obj 67 193 link-set 32;
+#X obj 119 184 link-set 31;
+#X obj 174 193 link-set 30;
+#X obj 259 198 link-set 29;
+#X obj 313 195 link-set 28;
+#X obj 377 195 link-set 27;
+#X obj 451 195 link-set 26;
+#X obj 494 195 link-set 25;
+#X obj 284 337 link-set 24;
+#X obj 284 337 link-set 23;
+#X obj 284 337 link-set 22;
+#X obj 228 390 link-set 21;
+#X obj 228 390 link-set 20;
+#X obj 233 332 link-set 19;
+#X obj 388 371 link-set 18;
+#X obj 388 371 link-set 17;
+#X obj 388 371 link-set 16;
+#X obj 388 371 link-set 15;
+#X obj 513 367 link-set 14;
+#X obj 513 367 link-set 13;
+#X obj 513 367 link-set 12;
+#X obj 513 367 link-set 11;
+#X obj 479 408 link-set 10;
+#X obj 479 408 link-set 9;
+#X obj 479 408 link-set 8;
+#X obj 552 411 link-set 7;
+#X obj 552 411 link-set 6;
+#X obj 480 325 link-set 5;
+#X obj 388 371 link-set 4;
+#X obj 388 371 link-set 3;
+#X obj 388 371 link-set 2;
+#X obj 388 371 link-set 1;
+#X obj 388 371 link-set 0;
#X restore 304 145 pd lsetter;
#X text 288 98 Automatic scripting targets;
#X text 65 66 You can ignore this stuff here \, unless something goes
@@ -605,9 +635,9 @@ wrong.;
#X connect 4 0 6 0;
#X connect 5 0 4 1;
#X connect 7 0 4 0;
-#X restore 163 439 pd ignore this;
-#X floatatom 131 301 5 20 1000 1 frequency - -;
-#X text 258 280 Visualization is done using either a GEM OpenGL window
+#X restore 149 517 pd ignore this;
+#X floatatom 133 385 5 10 1000 1 frequency - -;
+#X text 260 364 Visualization is done using either a GEM OpenGL window
\, or just animate the data structure alone. Better don't use both
at the same time. In GDS-mode you can set the frequency of the internal
metro \, to accelerate or slow down the simulation.;
@@ -615,13 +645,73 @@ metro \, to accelerate or slow down the simulation.;
Add mobile masses with black bang \, add fixed masses with the red
bang.;
#X obj 166 88 msd_append;
-#X text 259 361 In edit mode and while visualization is active \, you
-can move around the masses. The red masses will not receive any other
-forces from the model.;
#X text 429 102 Links are created by selecting at least two masses
in edit mode \, then press "L" to connect those with a link. If you
select more than two masses \, then all possible links between those
masses will get created. Use this to mass-connect masses. :);
+#N canvas 0 0 526 412 forces 0;
+#X obj 183 333 s \$0-msd;
+#X obj 282 273 hsl 128 24 -500 500 0 1 empty empty empty -2 -6 0 8
+-262144 -1 -1 6350 1;
+#X obj 183 148 vsl 24 128 -500 500 0 1 empty empty empty 0 -8 0 8 -262144
+-1 -1 6350 1;
+#X msg 183 306 forceY id \$1;
+#X msg 279 306 forceX id \$1;
+#X obj 183 284 * -1;
+#X obj 183 92 tgl 24 0 empty empty constant? 0 -6 0 8 -262144 -1 -1
+0 1;
+#X obj 279 213 tgl 24 0 empty empty constant? 0 -6 0 8 -262144 -1 -1
+0 1;
+#X obj 183 123 metro 10;
+#X obj 279 244 metro 10;
+#X msg 343 243 0;
+#X msg 151 122 0;
+#X text 118 45 Add some forces to the system.;
+#X connect 1 0 4 0;
+#X connect 2 0 5 0;
+#X connect 3 0 0 0;
+#X connect 4 0 0 0;
+#X connect 5 0 3 0;
+#X connect 6 0 8 0;
+#X connect 7 0 9 0;
+#X connect 8 0 2 0;
+#X connect 9 0 1 0;
+#X connect 10 0 1 0;
+#X connect 11 0 2 0;
+#X restore 60 457 pd forces;
+#X obj 274 518 tgl 15 0 \$0-gem-masses-on empty gem_m 0 -6 0 8 -233017
+-1 -1 0 1;
+#X obj 316 518 tgl 15 0 \$0-gem-links-on empty gem_l 0 -6 0 8 -233017
+-1 -1 0 1;
+#N canvas 183 333 450 300 props 0;
+#X obj 117 204 s \$0-msd;
+#X obj 117 46 vsl 15 64 0 10 0 0 empty empty D 0 -8 0 8 -262144 -1
+-1 0 1;
+#X obj 141 46 vsl 15 64 0 10 0 0 empty empty D2 0 -8 0 8 -262144 -1
+-1 0 1;
+#X obj 90 46 vsl 15 64 0 100 0 0 empty empty K 0 -8 0 8 -262144 -1
+-1 0 1;
+#X msg 90 175 setK ml \$1;
+#X msg 117 151 setD ml \$1;
+#X msg 141 122 setD2 ml \$1;
+#X text 192 47 Edit properties of Links.;
+#X connect 1 0 5 0;
+#X connect 2 0 6 0;
+#X connect 3 0 4 0;
+#X connect 4 0 0 0;
+#X connect 5 0 0 0;
+#X connect 6 0 0 0;
+#X restore 134 458 pd props;
+#X text 357 515 Toggle display of masses and links in GEM.;
+#X text 261 445 In edit mode and while visualization is active \, you
+can move around the masses. The red masses will not receive any other
+forces from the model. Use the "forces" and "props" subpatches to change
+parameters of links and send forces.;
+#X obj 51 196 morelinks;
+#X text 262 219 More ways to create links: left-to-right connects masses
+from left to right. one2many will connect one mass to many others.
+First select the first mass \, the set the toggle to 1 \, after that
+select the other masses and set toggle to 0;
#X connect 1 0 4 0;
#X connect 2 0 22 2;
#X connect 4 0 2 0;