Update of /cvsroot/pure-data/externals/mapping
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24808
Added Files:
pmattractor_2d.pd pmattractor_3d.pd pmcloud_1d.pd
pmcloud_2d.pd pmcloud_3d.pd pmcube_3d.pd pmmulti_stable_2d.pd
pmopen_string_1d.pd pmrepulsor_1d.pd pmrepulsor_2d.pd
pmrepulsor_3d.pd pmrigid_open_string_2d.pd
pmrigid_string_2d.pd pmsquare_2d.pd
Log Message:
--- NEW FILE: pmcloud_3d.pd ---
#N canvas 605 196 743 397 10;
#X obj 45 9 inlet;
#X obj 42 350 outlet;
#X obj 643 48 inlet;
#X msg 643 95 setK lnk \$1;
#X obj 736 49 inlet;
#X obj 554 44 inlet;
#N canvas 880 117 639 733 create_clouds 0;
#X obj 70 30 loadbang;
#X obj 175 649 t a;
#X obj 173 677 outlet;
#X obj 32 50 t b b b b b b;
#X obj 85 103 \$1;
#X obj 145 229 random 1000;
#X obj 145 253 / 1000;
#X obj 274 230 random 1000;
#X obj 274 254 / 1000;
#X msg 126 419 link lnk cloud in \$1 0;
#X msg 89 471 link lnk cloud cloud \$1 0;
#X obj 126 391 \$2;
#X obj 85 446 \$2;
#X obj 48 421 \$3;
#X obj 274 179 * 243354;
#X obj 145 177 * 654543;
#X msg 85 156 bang;
#X msg 145 201 seed \$1;
#X msg 274 202 seed \$1;
#X obj 145 145 \$1;
#X obj 39 12 inlet;
#X msg 175 95 reset \, mass in 0 1 0 0 0 \, mass fixe 0 0 0 0 0;
#X obj 145 283 pack f f f;
#X obj 367 230 random 1000;
#X obj 367 254 / 1000;
#X msg 367 202 seed \$1;
#X obj 367 179 * 2.42455e+06;
#X msg 145 312 mass cloud 1 1 \$1 \$2 \$3;
#N canvas 0 0 259 330 loop 0;
#X obj 74 149 f;
#X obj 74 213 + 1;
#X obj 74 171 moses \$1;
#X obj 74 104 t b f;
#X obj 104 281 outlet;
#X obj 74 82 inlet;
#X msg 74 126 0;
#X obj 74 191 t f f;
#X obj 96 240 t f;
#X connect 0 0 2 0;
#X connect 1 0 8 0;
#X connect 2 0 7 0;
#X connect 3 0 6 0;
#X connect 3 1 2 1;
#X connect 5 0 3 0;
#X connect 6 0 0 0;
#X connect 7 0 1 0;
#X connect 7 1 4 0;
#X connect 8 0 0 0;
#X restore 85 126 pd loop;
#X msg 48 504 nLink damp fixe cloud 0 \$1 0 0 1 \, nLink damp fixe
cloud 0 \$1 0 1 0 \, nLink damp fixe cloud 0 \$1 1 0 0;
#X connect 0 0 3 0;
#X connect 1 0 2 0;
#X connect 3 1 12 0;
#X connect 3 1 13 0;
#X connect 3 2 11 0;
#X connect 3 3 4 0;
#X connect 3 4 21 0;
#X connect 3 5 19 0;
#X connect 4 0 28 0;
#X connect 5 0 6 0;
#X connect 6 0 22 0;
#X connect 7 0 8 0;
#X connect 8 0 22 1;
#X connect 9 0 1 0;
#X connect 10 0 1 0;
#X connect 11 0 9 0;
#X connect 12 0 10 0;
#X connect 13 0 29 0;
#X connect 14 0 18 0;
#X connect 15 0 17 0;
#X connect 16 0 5 0;
#X connect 16 0 7 0;
#X connect 16 0 23 0;
#X connect 17 0 5 0;
#X connect 18 0 7 0;
#X connect 19 0 15 0;
#X connect 19 0 14 0;
#X connect 19 0 26 0;
#X connect 20 0 3 0;
#X connect 21 0 1 0;
#X connect 22 0 27 0;
#X connect 23 0 24 0;
#X connect 24 0 22 2;
#X connect 25 0 23 0;
#X connect 26 0 25 0;
#X connect 27 0 1 0;
#X connect 28 0 16 0;
#X connect 29 0 1 0;
#X restore 46 169 pd create_clouds;
#X msg 400 149 posY in \$1;
#X obj 42 300 route massesPosId;
#X obj 42 324 route cloud;
#X obj 305 59 t b l;
#X obj 336 106 unpack f f;
#X msg 336 129 posX in \$1;
#X msg 736 95 setD damp \$1;
#X msg 555 95 setL lnk \$1;
#X msg 305 83 bang \, get massesPos cloud;
#X obj 68 143 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X msg 91 96 forceX cloud \$1;
#X msg 131 117 forceY cloud \$1;
#X obj 46 30 route reset force forceX forceY forceZ;
#X obj 91 69 unpack f f f;
#X msg 173 139 forceZ cloud \$1;
#X obj 42 278 msd3D;
#X connect 0 0 19 0;
#X connect 2 0 3 0;
#X connect 3 0 22 0;
#X connect 4 0 13 0;
#X connect 5 0 14 0;
#X connect 6 0 22 0;
#X connect 7 0 22 0;
#X connect 8 0 9 0;
#X connect 9 0 1 0;
#X connect 10 0 15 0;
#X connect 10 1 11 0;
#X connect 11 0 12 0;
#X connect 11 1 7 0;
#X connect 12 0 22 0;
#X connect 13 0 22 0;
#X connect 14 0 22 0;
#X connect 15 0 22 0;
#X connect 16 0 6 0;
#X connect 17 0 22 0;
#X connect 18 0 22 0;
#X connect 19 0 6 0;
#X connect 19 1 20 0;
#X connect 19 2 17 0;
#X connect 19 3 18 0;
#X connect 19 4 21 0;
#X connect 19 5 10 0;
#X connect 20 0 17 0;
#X connect 20 1 18 0;
#X connect 20 2 21 0;
#X connect 21 0 22 0;
#X connect 22 0 8 0;
--- NEW FILE: pmopen_string_1d.pd ---
#N canvas 267 388 662 400 10;
#X obj 31 227 msd;
#X obj 31 34 inlet;
#X obj 31 301 outlet;
#X obj 453 39 inlet;
#X msg 453 86 setK lnk \$1;
#X obj 546 40 inlet;
#X msg 546 86 setD lnk \$1;
#X obj 126 300 outlet;
#N canvas 327 184 457 717 creation_corde 0;
#X msg 143 117 0;
#X obj 143 142 f;
#X obj 143 193 + 1;
#X obj 143 169 moses \$1;
#X obj 165 220 t f f;
#X obj 175 649 t a;
#X obj 195 366 pack f f;
#X obj 195 247 t f f;
#X obj 241 248 \$1;
#X msg 195 389 mass M-\$1 1 1 \$2;
#X obj 225 300 /;
#X msg 121 580 link lnk M-\$1 M-\$2 \$3 \$4;
#X obj 121 552 pack f f \$2 \$3;
#X obj 69 418 f;
#X obj 69 445 moses \$1;
#X obj 173 677 outlet;
#X msg 31 578 setL lnk 0;
#X obj 43 50 t b b b b b b;
#X obj 43 23 inlet;
#X msg 163 94 reset \, mass M-0 0 1 0;
#X msg 69 392 0;
#X obj 152 525 + 1;
#X obj 69 495 + 1;
#X obj 69 470 t f f f;
#X obj 91 522 t f;
#X connect 0 0 1 0;
#X connect 1 0 3 0;
#X connect 2 0 4 0;
#X connect 3 0 2 0;
#X connect 4 0 1 0;
#X connect 4 1 7 0;
#X connect 5 0 15 0;
#X connect 6 0 9 0;
#X connect 7 0 6 0;
#X connect 7 1 10 0;
#X connect 8 0 10 1;
#X connect 9 0 5 0;
#X connect 10 0 6 1;
#X connect 11 0 5 0;
#X connect 12 0 11 0;
#X connect 13 0 14 0;
#X connect 14 0 23 0;
#X connect 16 0 5 0;
#X connect 17 0 16 0;
#X connect 17 1 20 0;
#X connect 17 3 0 0;
#X connect 17 4 19 0;
#X connect 17 5 8 0;
#X connect 18 0 17 0;
#X connect 19 0 5 0;
#X connect 20 0 13 0;
#X connect 21 0 12 1;
#X connect 22 0 24 0;
#X connect 23 0 22 0;
#X connect 23 1 12 0;
#X connect 23 2 21 0;
#X connect 24 0 13 0;
#X restore 69 174 pd creation_corde;
#X msg 317 84 forceX M-\$1 \$2;
#X obj 31 249 route massesPos massesForces;
#X obj 70 151 loadbang;
#X obj 136 154 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X msg 31 81 bang \, get massesPos \, get massesForces;
#X obj 317 42 inlet;
#X obj 31 57 t b f;
#X msg 61 104 posX M-0 \$1;
#X connect 0 0 10 0;
#X connect 1 0 15 0;
#X connect 3 0 4 0;
#X connect 4 0 0 0;
#X connect 5 0 6 0;
#X connect 6 0 0 0;
#X connect 8 0 0 0;
#X connect 9 0 0 0;
#X connect 10 0 2 0;
#X connect 10 1 7 0;
#X connect 11 0 8 0;
#X connect 12 0 8 0;
#X connect 13 0 0 0;
#X connect 14 0 9 0;
#X connect 15 0 13 0;
#X connect 15 1 16 0;
#X connect 16 0 0 0;
--- NEW FILE: pmmulti_stable_2d.pd ---
#N canvas 835 203 726 492 10;
#X obj 42 34 inlet;
#X obj 41 435 outlet;
#X obj 510 34 inlet;
#X msg 510 81 setK lnk \$1;
#X obj 603 35 inlet;
#X msg 603 81 setD lnk \$1;
#X obj 41 363 msd2D;
#N canvas 866 113 421 804 creation_multi_stable 0;
#X obj 32 23 loadbang;
#X obj 175 649 t a;
#X obj 118 19 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 201 150 \$1;
#X obj 145 198 /;
#X obj 173 677 outlet;
#N canvas 0 0 259 330 loop 0;
#X obj 74 149 f;
#X obj 74 213 + 1;
#X obj 74 171 moses \$1;
#X obj 74 104 t b f;
#X obj 104 281 outlet;
#X obj 74 82 inlet;
#X msg 74 126 0;
#X obj 74 191 t f f;
#X obj 96 240 t f;
#X connect 0 0 2 0;
#X connect 1 0 8 0;
#X connect 2 0 7 0;
#X connect 3 0 6 0;
#X connect 3 1 2 1;
#X connect 5 0 3 0;
#X connect 6 0 0 0;
#X connect 7 0 1 0;
#X connect 7 1 4 0;
#X connect 8 0 0 0;
#X restore 145 174 pd loop;
#X obj 145 124 \$1;
#X msg 145 361 mass fixe 0 1 \$1 \$2;
#X obj 145 149 max 2;
#X obj 201 173 max 2;
#X obj 145 220 * 6.28;
#X obj 145 241 t f f;
#X obj 145 337 pack f f;
#X obj 196 267 sin;
#X obj 145 267 cos;
#X obj 79 428 pack \$2 \$3;
#X obj 145 290 * 0.5;
#X obj 196 292 * 0.5;
#X msg 79 450 link lnk fixe out \$1 \$2;
#X obj 32 50 t b b b b b b b;
#X msg 161 81 reset;
#X msg 115 394 mass out 1 1 1 0;
#X msg 63 481 setL lnk 1;
#X msg 35 511 mass grab 0 1 1 0 \, link lgrab out grab 0 0;
#X connect 0 0 20 0;
#X connect 1 0 5 0;
#X connect 2 0 20 0;
#X connect 3 0 10 0;
#X connect 4 0 11 0;
#X connect 6 0 4 0;
#X connect 7 0 9 0;
#X connect 8 0 1 0;
#X connect 9 0 6 0;
#X connect 10 0 4 1;
#X connect 11 0 12 0;
#X connect 12 0 15 0;
#X connect 12 1 14 0;
#X connect 13 0 8 0;
#X connect 14 0 18 0;
#X connect 15 0 17 0;
#X connect 16 0 19 0;
#X connect 17 0 13 0;
#X connect 18 0 13 1;
#X connect 19 0 1 0;
#X connect 20 0 24 0;
#X connect 20 1 23 0;
#X connect 20 2 16 0;
#X connect 20 3 22 0;
#X connect 20 4 7 0;
#X connect 20 5 3 0;
#X connect 20 6 21 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 restore 195 310 pd creation_multi_stable;
#X msg 140 90 forceX out \$1 \, forceY out \$2;
#X obj 41 90 unpack f f;
#X msg 41 114 posX grab \$1;
#X msg 90 167 setK lgrab \$1;
#X msg 106 136 posY grab \$1;
#X obj 41 57 route grab grab_on force bang;
#X obj 41 412 route out;
#X obj 41 385 route massesPosId;
#X msg 189 112 bang \, get massesPos out;
#X connect 0 0 13 0;
#X connect 2 0 3 0;
#X connect 3 0 6 0;
#X connect 4 0 5 0;
#X connect 5 0 6 0;
#X connect 6 0 15 0;
#X connect 7 0 6 0;
#X connect 8 0 6 0;
#X connect 9 0 10 0;
#X connect 9 1 12 0;
#X connect 10 0 6 0;
#X connect 11 0 6 0;
#X connect 12 0 6 0;
#X connect 13 0 9 0;
#X connect 13 1 11 0;
#X connect 13 2 8 0;
#X connect 13 3 16 0;
#X connect 14 0 1 0;
#X connect 15 0 14 0;
#X connect 16 0 6 0;
--- NEW FILE: pmcube_3d.pd ---
#N canvas 146 213 871 573 10;
#X obj 49 58 inlet;
#X obj 79 291 loadbang;
#X obj 39 524 outlet;
#X obj 79 317 pack \$1 \$2;
#X obj 436 59 inlet;
#X msg 436 106 setK lnk \$1;
#X obj 529 60 inlet;
#X msg 529 106 setD lnk \$1;
#X msg 267 296 bang \, get massesPos out \, get massesForces out;
#X obj 39 496 route out;
#X obj 148 525 outlet;
#X obj 148 497 route out;
#X obj 39 472 route massesPosId massesForcesId;
#X obj 159 286 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X msg 202 257 forceX out \$1 \, forceY out \$2 \, forceZ out \$3;
#X obj 40 450 msd3D;
#X msg 80 343 reset \, mass border 0 1 -1 -1 -1 \, mass border 0 1
-1 -1 1 \, mass border 0 1 -1 1 -1 \, mass border 0 1 -1 1 1 \, mass
border 0 1 1 -1 -1 \, mass border 0 1 1 -1 1 \, mass border 0 1 1 1
-1 \, mass border 0 1 1 1 1 \, mass out 1 1 0 0 0 \, link lnk border
out \$1 \$2 \, mass grab 0 1 0 0 0 \, link lgrab out grab 0 0;
#X msg 56 151 posX grab \$1;
#X msg 170 231 setK lgrab \$1;
#X msg 95 175 posY grab \$1;
#X obj 56 94 route grab grab_on force bang;
#X obj 56 127 unpack f f f;
#X msg 136 198 posZ grab \$1;
#X connect 0 0 20 0;
#X connect 1 0 3 0;
#X connect 3 0 16 0;
#X connect 4 0 5 0;
#X connect 5 0 15 0;
#X connect 6 0 7 0;
#X connect 7 0 15 0;
#X connect 8 0 15 0;
#X connect 9 0 2 0;
#X connect 11 0 10 0;
#X connect 12 0 9 0;
#X connect 12 1 11 0;
#X connect 13 0 3 0;
#X connect 14 0 15 0;
#X connect 15 0 12 0;
#X connect 16 0 15 0;
#X connect 17 0 15 0;
#X connect 18 0 15 0;
#X connect 19 0 15 0;
#X connect 20 0 21 0;
#X connect 20 1 18 0;
#X connect 20 2 14 0;
#X connect 20 3 8 0;
#X connect 21 0 17 0;
#X connect 21 1 19 0;
#X connect 21 2 22 0;
#X connect 22 0 15 0;
--- NEW FILE: pmsquare_2d.pd ---
#N canvas 222 210 871 573 10;
#X obj 31 34 inlet;
#X obj 82 304 loadbang;
#X obj 48 508 outlet;
#X obj 82 330 pack \$1 \$2;
#X obj 368 37 inlet;
#X msg 368 84 setK lnk \$1;
#X obj 461 38 inlet;
#X msg 461 84 setD lnk \$1;
#X obj 48 480 route out;
#X obj 157 509 outlet;
#X obj 157 481 route out;
#X obj 48 456 route massesPosId massesForcesId;
#X obj 49 434 msd2D;
#X obj 162 299 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X msg 179 116 bang \, get massesPos out \, get massesForces out;
#X msg 130 95 forceX out \$1 \, forceY out \$2;
#X obj 31 95 unpack f f;
#X msg 31 119 posX grab \$1;
#X msg 80 172 setK lgrab \$1;
#X msg 96 141 posY grab \$1;
#X obj 31 62 route grab grab_on force bang;
#X msg 82 356 reset \, mass corner 0 1 -1 -1 \, mass corner 0 1 1 -1
\, mass corner 0 1 1 1 \, mass corner 0 1 -1 1 \, mass out 1 1 0 0
\, link lnk corner out \$1 \$2 \, mass grab 0 1 0 0 \, link lgrab out
grab 0 0;
#X connect 0 0 20 0;
#X connect 1 0 3 0;
#X connect 3 0 21 0;
#X connect 4 0 5 0;
#X connect 5 0 12 0;
#X connect 6 0 7 0;
#X connect 7 0 12 0;
#X connect 8 0 2 0;
#X connect 10 0 9 0;
#X connect 11 0 8 0;
#X connect 11 1 10 0;
#X connect 12 0 11 0;
#X connect 13 0 3 0;
#X connect 14 0 12 0;
#X connect 15 0 12 0;
#X connect 16 0 17 0;
#X connect 16 1 19 0;
#X connect 17 0 12 0;
#X connect 18 0 12 0;
#X connect 19 0 12 0;
#X connect 20 0 16 0;
#X connect 20 1 18 0;
#X connect 20 2 15 0;
#X connect 20 3 14 0;
#X connect 21 0 12 0;
--- NEW FILE: pmrepulsor_1d.pd ---
#N canvas 127 228 633 573 10;
#X obj 31 34 inlet;
#X obj 79 317 loadbang;
#X obj 24 506 outlet;
#X obj 79 343 pack \$1 \$2;
#X obj 368 37 inlet;
#X msg 368 84 setK lnk \$1;
#X obj 461 38 inlet;
#X msg 461 84 setD lnk \$1;
#X obj 24 478 route out;
#X obj 133 507 outlet;
#X obj 133 479 route out;
#X obj 24 454 route massesPosId massesForcesId;
#X obj 159 312 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 24 432 msd;
#X msg 79 369 reset \, mass border 0 1 0 \, mass out 1 1 0.5 \, link
lnk border out \$1 \$2 \, mass grab 0 1 0 \, link lgrab out grab 0
0;
#X msg 213 129 bang \, get massesPos out \, get massesForces out;
#X obj 29 88 unpack f f;
#X msg 29 112 posX grab \$1;
#X msg 78 165 setK lgrab \$1;
#X msg 94 134 posY grab \$1;
#X obj 29 55 route grab grab_on force bang;
#X msg 132 89 forceX out \$1;
#X connect 0 0 20 0;
#X connect 1 0 3 0;
#X connect 3 0 14 0;
#X connect 4 0 5 0;
#X connect 5 0 13 0;
#X connect 6 0 7 0;
#X connect 7 0 13 0;
#X connect 8 0 2 0;
#X connect 10 0 9 0;
#X connect 11 0 8 0;
#X connect 11 1 10 0;
#X connect 12 0 3 0;
#X connect 13 0 11 0;
#X connect 14 0 13 0;
#X connect 15 0 13 0;
#X connect 16 0 17 0;
#X connect 16 1 19 0;
#X connect 17 0 13 0;
#X connect 18 0 13 0;
#X connect 19 0 13 0;
#X connect 20 0 16 0;
#X connect 20 1 18 0;
#X connect 20 2 21 0;
#X connect 20 3 15 0;
#X connect 21 0 13 0;
--- NEW FILE: pmrepulsor_2d.pd ---
#N canvas 73 203 871 573 10;
#X obj 31 34 inlet;
#X obj 76 214 loadbang;
#X obj 31 428 outlet;
#X obj 76 240 pack \$1 \$2;
#X obj 592 23 inlet;
#X msg 592 70 setK lnk \$1;
#X obj 685 24 inlet;
#X msg 685 70 setD lnk \$1;
#X msg 213 129 bang \, get massesPos out \, get massesForces out;
#X obj 31 400 route out;
#X obj 140 429 outlet;
#X obj 140 401 route out;
#X obj 31 376 route massesPosId massesForcesId;
#X obj 31 354 msd2D;
#X msg 132 89 forceX out \$1 \, forceY out \$2;
#X obj 156 209 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X msg 76 266 reset \, mass center 0 1 0 0 \, mass out 1 1 0.5 0 \,
link lnk center out \$1 0 \, nLink damp center out 0 \$2 0 1 \, nLink
damp center out 0 \$2 1 0 \, mass grab 0 1 0 0 \, link lgrab out grab
0 0;
#X obj 29 88 unpack f f;
#X msg 29 112 posX grab \$1;
#X msg 78 165 setK lgrab \$1;
#X msg 94 134 posY grab \$1;
#X obj 29 55 route grab grab_on force bang;
#X connect 0 0 21 0;
#X connect 1 0 3 0;
#X connect 3 0 16 0;
#X connect 4 0 5 0;
#X connect 5 0 13 0;
#X connect 6 0 7 0;
#X connect 7 0 13 0;
#X connect 8 0 13 0;
#X connect 9 0 2 0;
#X connect 11 0 10 0;
#X connect 12 0 9 0;
#X connect 12 1 11 0;
#X connect 13 0 12 0;
#X connect 14 0 13 0;
#X connect 15 0 3 0;
#X connect 16 0 13 0;
#X connect 17 0 18 0;
#X connect 17 1 20 0;
#X connect 18 0 13 0;
#X connect 19 0 13 0;
#X connect 20 0 13 0;
#X connect 21 0 17 0;
#X connect 21 1 19 0;
#X connect 21 2 14 0;
#X connect 21 3 8 0;
--- NEW FILE: pmrepulsor_3d.pd ---
#N canvas 146 213 871 573 10;
#X obj 31 34 inlet;
#X obj 59 326 loadbang;
#X obj 32 535 outlet;
#X obj 59 352 pack \$1 \$2;
#X obj 368 37 inlet;
#X msg 368 84 setK lnk \$1;
#X obj 461 38 inlet;
#X msg 461 84 setD lnk \$1;
#X msg 206 239 bang \, get massesPos out \, get massesForces out;
#X obj 32 507 route out;
#X obj 141 536 outlet;
#X obj 141 508 route out;
#X obj 32 483 route massesPosId massesForcesId;
#X obj 139 321 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 32 461 msd3D;
#X msg 171 216 forceX out \$1 \, forceY out \$2 \, forceZ out \$3;
#X msg 31 112 posX grab \$1;
#X msg 145 192 setK lgrab \$1;
#X msg 70 136 posY grab \$1;
#X obj 31 55 route grab grab_on force bang;
#X obj 31 88 unpack f f f;
#X msg 111 159 posZ grab \$1;
#X msg 59 378 reset \, mass center 0 1 0 0 0 \, mass out 1 1 0.5 0
0 \, link lnk center out \$1 0 \, nLink damp center out 0 \$2 0 1 0
\, nLink damp center out 0 \$2 1 0 0 \, nLink damp center out 0 \$2
0 0 1 \, mass grab 0 1 0 0 0 \, link lgrab out grab 0 0;
#X connect 0 0 19 0;
#X connect 1 0 3 0;
#X connect 3 0 22 0;
#X connect 4 0 5 0;
#X connect 5 0 14 0;
#X connect 6 0 7 0;
#X connect 7 0 14 0;
#X connect 8 0 14 0;
#X connect 9 0 2 0;
#X connect 11 0 10 0;
#X connect 12 0 9 0;
#X connect 12 1 11 0;
#X connect 13 0 3 0;
#X connect 14 0 12 0;
#X connect 15 0 14 0;
#X connect 16 0 14 0;
#X connect 17 0 14 0;
#X connect 18 0 14 0;
#X connect 19 0 20 0;
#X connect 19 1 17 0;
#X connect 19 2 15 0;
#X connect 19 3 8 0;
#X connect 20 0 16 0;
#X connect 20 1 18 0;
#X connect 20 2 21 0;
#X connect 21 0 14 0;
#X connect 22 0 14 0;
--- NEW FILE: pmcloud_1d.pd ---
#N canvas 374 197 743 397 10;
#X obj 45 9 inlet;
#X obj 42 350 outlet;
#X obj 468 7 inlet;
#X msg 468 54 setK lnk \$1;
#X obj 561 8 inlet;
#X obj 379 3 inlet;
#N canvas 670 136 639 733 create_clouds 0;
#X obj 70 30 loadbang;
#X obj 175 649 t a;
#X obj 173 677 outlet;
#X obj 32 50 t b b b b b b;
#N canvas 0 0 259 330 loop 0;
#X obj 74 149 f;
#X obj 74 213 + 1;
#X obj 74 171 moses \$1;
#X obj 74 104 t b f;
#X obj 104 281 outlet;
#X obj 74 82 inlet;
#X msg 74 126 0;
#X obj 74 191 t f f;
#X obj 96 240 t f;
#X connect 0 0 2 0;
#X connect 1 0 8 0;
#X connect 2 0 7 0;
#X connect 3 0 6 0;
#X connect 3 1 2 1;
#X connect 5 0 3 0;
#X connect 6 0 0 0;
#X connect 7 0 1 0;
#X connect 7 1 4 0;
#X connect 8 0 0 0;
#X restore 85 126 pd loop;
#X obj 85 103 \$1;
#X obj 145 229 random 1000;
#X obj 145 253 / 1000;
#X msg 126 419 link lnk cloud in \$1 0;
#X msg 89 471 link lnk cloud cloud \$1 0;
#X obj 126 391 \$2;
#X obj 85 446 \$2;
#X obj 48 421 \$3;
#X obj 145 177 * 654543;
#X msg 85 156 bang;
#X msg 145 201 seed \$1;
#X obj 145 145 \$1;
#X obj 39 12 inlet;
#X msg 145 312 mass cloud 1 1 \$1;
#X msg 175 94 reset \, mass in 0 1 0 \, mass fixe 0 0 0;
#X msg 48 504 link damp fixe cloud 0 \$1;
#X connect 0 0 3 0;
#X connect 1 0 2 0;
#X connect 3 1 11 0;
#X connect 3 1 12 0;
#X connect 3 2 10 0;
#X connect 3 3 5 0;
#X connect 3 4 19 0;
#X connect 3 5 16 0;
#X connect 4 0 14 0;
#X connect 5 0 4 0;
#X connect 6 0 7 0;
#X connect 7 0 18 0;
#X connect 8 0 1 0;
#X connect 9 0 1 0;
#X connect 10 0 8 0;
#X connect 11 0 9 0;
#X connect 12 0 20 0;
#X connect 13 0 15 0;
#X connect 14 0 6 0;
#X connect 15 0 6 0;
#X connect 16 0 13 0;
#X connect 17 0 3 0;
#X connect 18 0 1 0;
#X connect 19 0 1 0;
#X connect 20 0 1 0;
#X restore 46 169 pd create_clouds;
#X obj 42 300 route massesPosId;
#X obj 42 324 route cloud;
#X obj 161 90 t b l;
#X msg 192 138 posX in \$1;
#X msg 561 54 setD damp \$1;
#X msg 380 54 setL lnk \$1;
#X msg 161 114 bang \, get massesPos cloud;
#X obj 68 143 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X msg 99 61 forceX cloud \$1;
#X obj 42 278 msd;
#X obj 46 30 route reset force;
#X connect 0 0 17 0;
#X connect 2 0 3 0;
#X connect 3 0 16 0;
#X connect 4 0 11 0;
#X connect 5 0 12 0;
#X connect 6 0 16 0;
#X connect 7 0 8 0;
#X connect 8 0 1 0;
#X connect 9 0 13 0;
#X connect 9 1 10 0;
#X connect 10 0 16 0;
#X connect 11 0 16 0;
#X connect 12 0 16 0;
#X connect 13 0 16 0;
#X connect 14 0 6 0;
#X connect 15 0 16 0;
#X connect 16 0 7 0;
#X connect 17 0 6 0;
#X connect 17 1 15 0;
#X connect 17 2 9 0;
--- NEW FILE: pmrigid_string_2d.pd ---
#N canvas 605 196 743 397 10;
#X obj 42 34 inlet;
#X obj 42 57 t b f;
#X obj 42 350 outlet;
#X obj 269 31 inlet;
#X obj 510 34 inlet;
#X msg 510 81 setK lnk \$1;
#X obj 603 35 inlet;
#X msg 603 81 setD lnk \$1;
#N canvas 746 115 421 804 creation_corde 0;
#X obj 32 23 loadbang;
#X msg 143 117 0;
#X obj 143 142 f;
#X obj 143 193 + 1;
#X obj 143 169 moses \$1;
#X obj 165 220 t f f;
#X obj 175 649 t a;
#X obj 241 271 + 1;
#X obj 118 19 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 195 329 pack f f;
#X obj 195 247 t f f;
#X obj 241 248 \$1;
#X obj 225 300 /;
#X obj 119 291 + 1;
#X obj 119 268 \$1;
#X msg 121 580 link lnk M-\$1 M-\$2 \$3 \$4;
#X obj 121 552 pack f f \$2 \$3;
#X obj 173 677 outlet;
#X msg 31 578 setL lnk 0;
#X obj 32 50 t b b b b b b;
#N canvas 0 0 259 330 loop 0;
#X obj 74 149 f;
#X obj 74 213 + 1;
#X obj 74 171 moses \$1;
#X obj 74 104 t b f;
#X obj 104 281 outlet;
#X obj 74 82 inlet;
#X msg 74 126 0;
#X obj 74 191 t f f;
#X obj 96 240 t f;
#X connect 0 0 2 0;
#X connect 1 0 8 0;
#X connect 2 0 7 0;
#X connect 3 0 6 0;
#X connect 3 1 2 1;
#X connect 5 0 3 0;
#X connect 6 0 0 0;
#X connect 7 0 1 0;
#X connect 7 1 4 0;
#X connect 8 0 0 0;
#X restore 70 417 pd loop;
#X obj 71 361 \$1;
#N canvas 0 0 259 330 loop 0;
#X obj 74 149 f;
#X obj 74 213 + 1;
#X obj 74 171 moses \$1;
#X obj 74 104 t b f;
#X obj 104 281 outlet;
#X obj 74 82 inlet;
#X msg 74 126 0;
#X obj 74 191 t f f;
#X obj 96 240 t f;
#X connect 0 0 2 0;
#X connect 1 0 8 0;
#X connect 2 0 7 0;
#X connect 3 0 6 0;
#X connect 3 1 2 1;
#X connect 5 0 3 0;
#X connect 6 0 0 0;
#X connect 7 0 1 0;
#X connect 7 1 4 0;
#X connect 8 0 0 0;
#X restore 71 477 pd loop;
#X obj 71 451 t f f;
#X obj 71 386 + 2;
#X msg 175 94 reset \, mass M-0 0 1 0 0;
#X msg 195 352 mass M-\$1 1 1 \$2 0;
#X msg 119 400 mass M-\$1 0 1 1 0;
#X connect 0 0 19 0;
#X connect 1 0 2 0;
#X connect 2 0 4 0;
#X connect 3 0 5 0;
#X connect 4 0 3 0;
#X connect 5 0 2 0;
#X connect 5 1 10 0;
#X connect 6 0 17 0;
#X connect 7 0 12 1;
#X connect 8 0 19 0;
#X connect 9 0 26 0;
#X connect 10 0 9 0;
#X connect 10 1 12 0;
#X connect 11 0 7 0;
#X connect 12 0 9 1;
#X connect 13 0 27 0;
#X connect 14 0 13 0;
#X connect 15 0 6 0;
#X connect 16 0 15 0;
#X connect 19 0 18 0;
#X connect 19 1 21 0;
#X connect 19 2 14 0;
#X connect 19 3 1 0;
#X connect 19 4 25 0;
#X connect 19 5 11 0;
#X connect 20 0 23 0;
#X connect 21 0 24 0;
#X connect 22 0 16 0;
#X connect 23 0 22 0;
#X connect 23 1 16 1;
#X connect 24 0 20 0;
#X connect 25 0 6 0;
#X connect 26 0 6 0;
#X connect 27 0 6 0;
#X restore 87 175 pd creation_corde;
#X obj 269 96 pack f f;
#X obj 320 30 loadbang;
#X obj 320 72 + 1;
#X obj 320 51 \$1;
#X obj 395 31 inlet;
#X obj 42 278 msd2D;
#X msg 395 80 forceY M-\$1 \$2;
#X msg 72 104 posY M-0 \$1;
#X msg 268 124 posY M-\$2 \$1;
#X obj 42 300 route massesPos;
#X msg 42 81 bang \, get massesPos;
#X connect 0 0 1 0;
#X connect 1 0 19 0;
#X connect 1 1 16 0;
#X connect 3 0 9 0;
#X connect 4 0 5 0;
#X connect 5 0 14 0;
#X connect 6 0 7 0;
#X connect 7 0 14 0;
#X connect 8 0 14 0;
#X connect 9 0 17 0;
#X connect 10 0 12 0;
#X connect 11 0 9 1;
#X connect 12 0 11 0;
#X connect 13 0 15 0;
#X connect 14 0 18 0;
#X connect 15 0 14 0;
#X connect 16 0 14 0;
#X connect 17 0 14 0;
#X connect 18 0 2 0;
#X connect 19 0 14 0;
--- NEW FILE: pmcloud_2d.pd ---
#N canvas 605 196 743 397 10;
#X obj 45 9 inlet;
#X obj 42 350 outlet;
#X obj 643 48 inlet;
#X msg 643 95 setK lnk \$1;
#X obj 736 49 inlet;
#X obj 554 44 inlet;
#X obj 42 278 msd2D;
#N canvas 880 117 639 733 create_clouds 0;
#X obj 70 30 loadbang;
#X obj 175 649 t a;
#X obj 173 677 outlet;
#X obj 32 50 t b b b b b b;
#N canvas 0 0 259 330 loop 0;
#X obj 74 149 f;
#X obj 74 213 + 1;
#X obj 74 171 moses \$1;
#X obj 74 104 t b f;
#X obj 104 281 outlet;
#X obj 74 82 inlet;
#X msg 74 126 0;
#X obj 74 191 t f f;
#X obj 96 240 t f;
#X connect 0 0 2 0;
#X connect 1 0 8 0;
#X connect 2 0 7 0;
#X connect 3 0 6 0;
#X connect 3 1 2 1;
#X connect 5 0 3 0;
#X connect 6 0 0 0;
#X connect 7 0 1 0;
#X connect 7 1 4 0;
#X connect 8 0 0 0;
#X restore 85 126 pd loop;
#X obj 85 103 \$1;
#X obj 145 229 random 1000;
#X obj 145 253 / 1000;
#X msg 145 312 mass cloud 1 1 \$1 \$2;
#X obj 274 230 random 1000;
#X obj 274 254 / 1000;
#X obj 145 283 pack f f;
#X msg 126 419 link lnk cloud in \$1 0;
#X msg 175 94 reset \, mass in 0 1 0 0 \, mass fixe 0 0 0 0;
#X msg 48 504 nLink damp fixe cloud 0 \$1 0 1 \, nLink damp fixe cloud
0 \$1 1 0;
#X msg 89 471 link lnk cloud cloud \$1 0;
#X obj 126 391 \$2;
#X obj 85 446 \$2;
#X obj 48 421 \$3;
#X obj 274 179 * 243354;
#X obj 145 177 * 654543;
#X msg 85 156 bang;
#X msg 145 201 seed \$1;
#X msg 274 202 seed \$1;
#X obj 145 145 \$1;
#X obj 39 12 inlet;
#X connect 0 0 3 0;
#X connect 1 0 2 0;
#X connect 3 1 17 0;
#X connect 3 1 18 0;
#X connect 3 2 16 0;
#X connect 3 3 5 0;
#X connect 3 4 13 0;
#X connect 3 5 24 0;
#X connect 4 0 21 0;
#X connect 5 0 4 0;
#X connect 6 0 7 0;
#X connect 7 0 11 0;
#X connect 8 0 1 0;
#X connect 9 0 10 0;
#X connect 10 0 11 1;
#X connect 11 0 8 0;
#X connect 12 0 1 0;
#X connect 13 0 1 0;
#X connect 14 0 1 0;
#X connect 15 0 1 0;
#X connect 16 0 12 0;
#X connect 17 0 15 0;
#X connect 18 0 14 0;
#X connect 19 0 23 0;
#X connect 20 0 22 0;
#X connect 21 0 6 0;
#X connect 21 0 9 0;
#X connect 22 0 6 0;
#X connect 23 0 9 0;
#X connect 24 0 20 0;
#X connect 24 0 19 0;
#X connect 25 0 3 0;
#X restore 46 169 pd create_clouds;
#X obj 91 69 unpack f f;
#X msg 346 141 posY in \$1;
#X obj 42 300 route massesPosId;
#X obj 42 324 route cloud;
#X obj 251 51 t b l;
#X obj 282 98 unpack f f;
#X msg 282 121 posX in \$1;
#X msg 736 95 setD damp \$1;
#X msg 555 95 setL lnk \$1;
#X msg 251 75 bang \, get massesPos cloud;
#X obj 68 143 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 46 30 route reset force forceX forceY;
#X msg 91 96 forceX cloud \$1;
#X msg 155 119 forceY cloud \$1;
#X connect 0 0 19 0;
#X connect 2 0 3 0;
#X connect 3 0 6 0;
#X connect 4 0 15 0;
#X connect 5 0 16 0;
#X connect 6 0 10 0;
#X connect 7 0 6 0;
#X connect 8 0 20 0;
#X connect 8 1 21 0;
#X connect 9 0 6 0;
#X connect 10 0 11 0;
#X connect 11 0 1 0;
#X connect 12 0 17 0;
#X connect 12 1 13 0;
#X connect 13 0 14 0;
#X connect 13 1 9 0;
#X connect 14 0 6 0;
#X connect 15 0 6 0;
#X connect 16 0 6 0;
#X connect 17 0 6 0;
#X connect 18 0 7 0;
#X connect 19 0 7 0;
#X connect 19 1 8 0;
#X connect 19 2 20 0;
#X connect 19 3 21 0;
#X connect 19 4 12 0;
#X connect 20 0 6 0;
#X connect 21 0 6 0;
--- NEW FILE: pmrigid_open_string_2d.pd ---
#N canvas 870 255 743 397 10;
#X obj 42 34 inlet;
#X obj 42 57 t b f;
#X obj 42 350 outlet;
#X obj 510 34 inlet;
#X msg 510 81 setK lnk \$1;
#X obj 603 35 inlet;
#X msg 603 81 setD lnk \$1;
#N canvas 746 115 421 804 creation_corde 0;
#X obj 32 23 loadbang;
#X msg 141 212 0;
#X obj 141 237 f;
#X obj 141 288 + 1;
#X obj 141 264 moses \$1;
#X obj 163 315 t f f;
#X obj 175 649 t a;
#X obj 239 366 + 1;
#X obj 118 19 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 193 424 pack f f;
#X obj 193 342 t f f;
#X obj 239 343 \$1;
#X obj 223 395 /;
#X obj 205 168 + 1;
#X obj 205 145 \$1;
#X msg 121 580 link lnk M-\$1 M-\$2 \$3 \$4;
#X obj 121 552 pack f f \$2 \$3;
#X obj 173 677 outlet;
#X msg 31 578 setL lnk 0;
#X obj 32 50 t b b b b b b;
#N canvas 0 0 259 330 loop 0;
#X obj 74 149 f;
#X obj 74 213 + 1;
#X obj 74 171 moses \$1;
#X obj 74 104 t b f;
#X obj 104 281 outlet;
#X obj 74 82 inlet;
#X msg 74 126 0;
#X obj 74 191 t f f;
#X obj 96 240 t f;
#X connect 0 0 2 0;
#X connect 1 0 8 0;
#X connect 2 0 7 0;
#X connect 3 0 6 0;
#X connect 3 1 2 1;
#X connect 5 0 3 0;
#X connect 6 0 0 0;
#X connect 7 0 1 0;
#X connect 7 1 4 0;
#X connect 8 0 0 0;
#X restore 70 417 pd loop;
#X obj 71 361 \$1;
#N canvas 0 0 259 330 loop 0;
#X obj 74 149 f;
#X obj 74 213 + 1;
#X obj 74 171 moses \$1;
#X obj 74 104 t b f;
#X obj 104 281 outlet;
#X obj 74 82 inlet;
#X msg 74 126 0;
#X obj 74 191 t f f;
#X obj 96 240 t f;
#X connect 0 0 2 0;
#X connect 1 0 8 0;
#X connect 2 0 7 0;
#X connect 3 0 6 0;
#X connect 3 1 2 1;
#X connect 5 0 3 0;
#X connect 6 0 0 0;
#X connect 7 0 1 0;
#X connect 7 1 4 0;
#X connect 8 0 0 0;
#X restore 71 477 pd loop;
#X obj 71 451 t f f;
#X obj 71 386 + 2;
#X msg 175 94 reset \, mass M-0 0 1 0 0;
#X msg 193 447 mass M-\$1 1 1 \$2 0;
#X msg 205 192 mass M-\$1 0 1 -0.1 0;
#X connect 0 0 19 0;
#X connect 1 0 2 0;
#X connect 2 0 4 0;
#X connect 3 0 5 0;
#X connect 4 0 3 0;
#X connect 5 0 2 0;
#X connect 5 1 10 0;
#X connect 6 0 17 0;
#X connect 7 0 12 1;
#X connect 8 0 19 0;
#X connect 9 0 26 0;
#X connect 10 0 9 0;
#X connect 10 1 12 0;
#X connect 11 0 7 0;
#X connect 12 0 9 1;
#X connect 13 0 27 0;
#X connect 14 0 13 0;
#X connect 15 0 6 0;
#X connect 16 0 15 0;
#X connect 19 0 18 0;
#X connect 19 1 21 0;
#X connect 19 2 1 0;
#X connect 19 3 14 0;
#X connect 19 4 25 0;
#X connect 19 5 11 0;
#X connect 20 0 23 0;
#X connect 21 0 24 0;
#X connect 22 0 16 0;
#X connect 23 0 22 0;
#X connect 23 1 16 1;
#X connect 24 0 20 0;
#X connect 25 0 6 0;
#X connect 26 0 6 0;
#X connect 27 0 6 0;
#X restore 87 175 pd creation_corde;
#X obj 395 31 inlet;
#X obj 42 278 msd2D;
#X msg 395 80 forceY M-\$1 \$2;
#X msg 72 104 posY M-0 \$1;
#X msg 169 130 posY M-\$2 \$1;
#X obj 42 300 route massesPos;
#X msg 42 81 bang \, get massesPos;
#X obj 169 107 pack f f;
#X obj 220 59 \$1;
#X obj 220 81 + 1;
#X obj 220 37 loadbang;
#X connect 0 0 1 0;
#X connect 1 0 14 0;
#X connect 1 1 11 0;
#X connect 1 1 15 0;
#X connect 3 0 4 0;
#X connect 4 0 9 0;
#X connect 5 0 6 0;
#X connect 6 0 9 0;
#X connect 7 0 9 0;
#X connect 8 0 10 0;
#X connect 9 0 13 0;
#X connect 10 0 9 0;
#X connect 11 0 9 0;
#X connect 12 0 9 0;
#X connect 13 0 2 0;
#X connect 14 0 9 0;
#X connect 15 0 12 0;
#X connect 16 0 17 0;
#X connect 17 0 15 1;
#X connect 18 0 16 0;
--- NEW FILE: pmattractor_3d.pd ---
#N canvas 522 233 697 573 10;
#X obj 31 34 inlet;
#X obj 76 286 loadbang;
#X obj 31 511 outlet;
#X obj 76 312 pack \$1 \$2;
#X obj 341 24 inlet;
#X msg 341 71 setK lnk \$1;
#X obj 434 25 inlet;
#X msg 434 71 setD lnk \$1;
#X msg 276 246 bang \, get massesPos out \, get massesForces out;
#X obj 31 483 route out;
#X obj 140 512 outlet;
#X obj 140 484 route out;
#X obj 31 459 route massesPosId massesForcesId;
#X obj 156 281 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X msg 209 217 forceX out \$1 \, forceY out \$2 \, forceZ out \$3;
#X obj 31 437 msd3D;
#X msg 31 112 posX grab \$1;
#X msg 145 192 setK lgrab \$1;
#X msg 70 136 posY grab \$1;
#X obj 31 55 route grab grab_on force bang;
#X obj 31 88 unpack f f f;
#X msg 111 159 posZ grab \$1;
#X msg 76 338 reset \, mass border 0 1 -1 0 0 \, mass border 0 1 1
0 0 \, mass border 0 1 0 -1 0 \, mass border 0 1 0 1 0 \, mass border
0 1 0 0 1 \, mass border 0 1 0 0 -1 \, mass out 1 1 0 0 0 \, link lnk
border out \$1 \$2 \, mass grab 0 1 0 0 0 \, link lgrab out grab 0
0;
#X connect 0 0 19 0;
#X connect 1 0 3 0;
#X connect 3 0 22 0;
#X connect 4 0 5 0;
#X connect 5 0 15 0;
#X connect 6 0 7 0;
#X connect 7 0 15 0;
#X connect 8 0 15 0;
#X connect 9 0 2 0;
#X connect 11 0 10 0;
#X connect 12 0 9 0;
#X connect 12 1 11 0;
#X connect 13 0 3 0;
#X connect 14 0 15 0;
#X connect 15 0 12 0;
#X connect 16 0 15 0;
#X connect 17 0 15 0;
#X connect 18 0 15 0;
#X connect 19 0 20 0;
#X connect 19 1 17 0;
#X connect 19 2 14 0;
#X connect 19 3 8 0;
#X connect 20 0 16 0;
#X connect 20 1 18 0;
#X connect 20 2 21 0;
#X connect 21 0 15 0;
#X connect 22 0 15 0;
--- NEW FILE: pmattractor_2d.pd ---
#N canvas 736 156 871 573 10;
#X obj 46 21 inlet;
#X obj 174 278 loadbang;
#X obj 46 495 outlet;
#X obj 174 304 pack \$1 \$2;
#X obj 526 16 inlet;
#X msg 526 115 setK lnk \$1;
#X obj 619 17 inlet;
#X msg 619 115 setD lnk \$1;
#X msg 194 110 bang \, get massesPos out \, get massesForces out;
#X obj 46 467 route out;
#X obj 155 496 outlet;
#X obj 155 467 route out;
#X obj 46 443 route massesPosId massesForcesId;
#X obj 46 421 msd2D;
#X msg 145 89 forceX out \$1 \, forceY out \$2;
#X obj 254 273 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X msg 174 330 reset \, mass border 0 1 -1 0 \, mass border 0 1 1 0
\, mass border 0 1 0 -1 \, mass border 0 1 0 1 \, mass out 1 1 0 0
\, link lnk border out \$1 \$2 \, mass grab 0 1 0 0 \, link lgrab out
grab 0 0;
#X obj 46 89 unpack f f;
#X msg 46 113 posX grab \$1;
#X msg 95 166 setK lgrab \$1;
#X msg 111 135 posY grab \$1;
#X obj 46 56 route grab grab_on force bang;
#X connect 0 0 21 0;
#X connect 1 0 3 0;
#X connect 3 0 16 0;
#X connect 4 0 5 0;
#X connect 5 0 13 0;
#X connect 6 0 7 0;
#X connect 7 0 13 0;
#X connect 8 0 13 0;
#X connect 9 0 2 0;
#X connect 11 0 10 0;
#X connect 12 0 9 0;
#X connect 12 1 11 0;
#X connect 13 0 12 0;
#X connect 14 0 13 0;
#X connect 15 0 3 0;
#X connect 16 0 13 0;
#X connect 17 0 18 0;
#X connect 17 1 20 0;
#X connect 18 0 13 0;
#X connect 19 0 13 0;
#X connect 20 0 13 0;
#X connect 21 0 17 0;
#X connect 21 1 19 0;
#X connect 21 2 14 0;
#X connect 21 3 8 0;