aboutsummaryrefslogtreecommitdiff
path: root/extensions/xgui/physics
diff options
context:
space:
mode:
authorIOhannes m zmölnig <zmoelnig@users.sourceforge.net>2008-02-07 23:05:57 +0000
committerIOhannes m zmölnig <zmoelnig@users.sourceforge.net>2008-02-07 23:05:57 +0000
commit6adfba996c34b2c78515e8a50ad5928188d78612 (patch)
treee93ec4c07be45ae47f8e6065f21b59098998afe5 /extensions/xgui/physics
parentc0ab517b9027bd66c32f931ce592932c85f43d7b (diff)
reorganizing
svn path=/trunk/; revision=9376
Diffstat (limited to 'extensions/xgui/physics')
-rw-r--r--extensions/xgui/physics/atom.pd21
-rw-r--r--extensions/xgui/physics/damping.pd59
-rw-r--r--extensions/xgui/physics/force.pd29
-rw-r--r--extensions/xgui/physics/lia_2d.pd206
-rw-r--r--extensions/xgui/physics/mass.pd118
-rw-r--r--extensions/xgui/physics/spring.pd155
-rw-r--r--extensions/xgui/physics/vector.pd162
7 files changed, 750 insertions, 0 deletions
diff --git a/extensions/xgui/physics/atom.pd b/extensions/xgui/physics/atom.pd
new file mode 100644
index 00000000..2defe2ff
--- /dev/null
+++ b/extensions/xgui/physics/atom.pd
@@ -0,0 +1,21 @@
+#N canvas 579 401 301 287 10;
+#X obj 22 35 inlet;
+#X text 199 245 dh20020401;
+#X text 22 10 atom name x y;
+#X obj 21 85 concat !xy;
+#X obj 75 109 concat ?xy;
+#X obj 129 133 concat add;
+#X obj 18 212 convert xy= coord=;
+#X obj 18 183 vector \$1-pos \$2 \$3;
+#X obj 18 239 outlet;
+#X obj 21 62 route !coord ?coord move drag;
+#X connect 0 0 9 0;
+#X connect 3 0 7 0;
+#X connect 4 0 7 0;
+#X connect 5 0 7 0;
+#X connect 6 0 8 0;
+#X connect 7 0 6 0;
+#X connect 9 0 3 0;
+#X connect 9 1 4 0;
+#X connect 9 2 5 0;
+#X connect 9 3 5 0;
diff --git a/extensions/xgui/physics/damping.pd b/extensions/xgui/physics/damping.pd
new file mode 100644
index 00000000..1e8a0973
--- /dev/null
+++ b/extensions/xgui/physics/damping.pd
@@ -0,0 +1,59 @@
+#N canvas 605 407 505 422 10;
+#X obj 26 45 inlet;
+#X text 237 8 force = -c.v;
+#X obj 93 45 valueinit \$1_c \$2;
+#X text 23 8 damping name c;
+#X obj 62 120 value \$1_c;
+#X msg 62 95 bang;
+#X obj 243 78 inlet;
+#X obj 248 261 value \$1_c;
+#X obj 248 310 *;
+#X msg 243 128 ?abs;
+#X obj 266 284 * -1;
+#X obj 248 360 force \$1_s;
+#X obj 337 389 outlet;
+#X obj 248 211 r b_spring;
+#X text 405 368 dh20020404;
+#X obj 64 222 outlet;
+#X msg 248 335 !abs \$1;
+#X obj 122 150 force \$1_s;
+#X obj 26 70 route !c ?c ?force;
+#X msg 120 95 ?force;
+#X obj 264 184 route abs=;
+#X msg 284 128 !xy \$3 \$4;
+#X obj 264 159 vector \$1_calcul;
+#X obj 243 103 t b a a;
+#X obj 332 286 vector \$1_speed;
+#X msg 362 132 !xy \$3 \$4;
+#X obj 385 159 vector \$1_speed;
+#X obj 248 236 t b b;
+#X msg 332 264 ?xy;
+#X msg 332 311 !force \$1 \$2;
+#X connect 0 0 18 0;
+#X connect 4 0 15 0;
+#X connect 5 0 4 0;
+#X connect 6 0 23 0;
+#X connect 7 0 8 0;
+#X connect 8 0 16 0;
+#X connect 9 0 22 0;
+#X connect 10 0 8 1;
+#X connect 11 1 12 0;
+#X connect 13 0 27 0;
+#X connect 16 0 11 0;
+#X connect 17 0 15 0;
+#X connect 18 0 4 0;
+#X connect 18 1 5 0;
+#X connect 18 2 19 0;
+#X connect 19 0 17 0;
+#X connect 20 0 10 0;
+#X connect 21 0 22 0;
+#X connect 22 0 20 0;
+#X connect 23 0 9 0;
+#X connect 23 1 21 0;
+#X connect 23 2 25 0;
+#X connect 24 0 29 0;
+#X connect 25 0 26 0;
+#X connect 27 0 7 0;
+#X connect 27 1 28 0;
+#X connect 28 0 24 0;
+#X connect 29 0 11 0;
diff --git a/extensions/xgui/physics/force.pd b/extensions/xgui/physics/force.pd
new file mode 100644
index 00000000..7371eb9c
--- /dev/null
+++ b/extensions/xgui/physics/force.pd
@@ -0,0 +1,29 @@
+#N canvas 534 341 718 332 12;
+#X obj 25 78 inlet;
+#X obj 25 254 outlet;
+#X text 580 265 dh20020401;
+#X obj 388 143 r b_force;
+#X text 17 8 force name x y;
+#X obj 25 200 vector \$1_force \$2 \$3;
+#X msg 388 170 ?xy;
+#X obj 388 199 vector \$1_force \$2 \$3;
+#X obj 388 254 outlet;
+#X obj 388 226 convert xy= force;
+#X obj 25 104 route !force ?force !abs;
+#X obj 25 227 convert xy= force=;
+#X msg 25 133 !xy \$1 \$2;
+#X msg 119 132 ?xy;
+#X msg 166 131 !abs \$1;
+#X connect 0 0 10 0;
+#X connect 3 0 6 0;
+#X connect 5 0 11 0;
+#X connect 6 0 7 0;
+#X connect 7 0 9 0;
+#X connect 9 0 8 0;
+#X connect 10 0 12 0;
+#X connect 10 1 13 0;
+#X connect 10 2 14 0;
+#X connect 11 0 1 0;
+#X connect 12 0 5 0;
+#X connect 13 0 5 0;
+#X connect 14 0 5 0;
diff --git a/extensions/xgui/physics/lia_2d.pd b/extensions/xgui/physics/lia_2d.pd
new file mode 100644
index 00000000..8b21948a
--- /dev/null
+++ b/extensions/xgui/physics/lia_2d.pd
@@ -0,0 +1,206 @@
+#N canvas 100 156 652 628 10;
+#X obj 217 36 inlet;
+#X obj 443 33 inlet;
+#X obj 402 32 inlet;
+#X obj 259 35 inlet;
+#X text 225 -17 X1;
+#X text 285 -39 masse 1;
+#X text 449 -43 masse 2;
+#X text 412 -19 X2;
+#X obj 173 552 outlet;
+#X obj 384 553 outlet;
+#X floatatom 616 65 0 0 0;
+#X text 552 -62 longeur du resort;
+#X obj -19 -9 loadbang;
+#X text 276 -99 modele de liaison;
+#X floatatom 218 82 0 0 0;
+#X floatatom 388 61 0 0 0;
+#X obj 324 186 -;
+#X obj 286 184 -;
+#X floatatom 66 61 0 0 0;
+#X floatatom 131 60 0 0 0;
+#X text 74 -43 K;
+#X text 135 -41 C;
+#X obj 322 353 *;
+#X obj 337 328 -;
+#X obj 460 422 *;
+#X obj 343 464 +;
+#X floatatom 259 62 0 0 0;
+#X floatatom 446 62 0 0 0;
+#X obj 291 499 * -1;
+#X obj 67 36 inlet;
+#X obj 132 35 inlet;
+#X obj 36 109 float;
+#X obj 101 110 float;
+#X obj 187 107 float;
+#X obj 229 107 float;
+#X obj 372 107 float;
+#X obj 413 106 float;
+#X text 53 -61 raideur;
+#X text 110 -60 viscosite;
+#X obj 66 -12 r lk;
+#X obj 132 -12 r lc;
+#X obj 67 13 \$1;
+#X obj 133 12 \$2;
+#X obj 216 9 \$3;
+#X obj 307 9 \$5;
+#X obj 616 38 inlet;
+#X obj 599 107 f;
+#X text 596 -32 L0;
+#X text 579 -49 a vide;
+#X obj 306 35 inlet;
+#X obj 348 35 inlet;
+#X floatatom 306 83 0 0 0;
+#X floatatom 348 62 0 0 0;
+#X obj 276 107 float;
+#X obj 318 107 float;
+#X obj 529 32 inlet;
+#X obj 488 31 inlet;
+#X floatatom 486 61 0 0 0;
+#X floatatom 526 63 0 0 0;
+#X obj 458 106 float;
+#X obj 499 105 float;
+#X text 272 -17 Vx1;
+#X text 314 -17 Y1;
+#X text 361 -17 Vy1;
+#X text 453 -20 Vx2;
+#X text 498 -20 Y2;
+#X text 539 -21 Vy2;
+#X obj 260 9 \$4;
+#X obj 349 8 \$6;
+#X obj 403 6 \$7;
+#X obj 445 6 \$8;
+#X obj 488 5 \$9;
+#X obj 528 6 \$10;
+#X obj 612 14 \$11;
+#X obj 417 185 -;
+#X obj 377 185 -;
+#X text 288 202 Dx;
+#X text 323 205 DVx;
+#X text 380 206 Dy;
+#X text 416 204 DVy;
+#X obj 287 230 *;
+#X obj 377 230 *;
+#X obj 320 258 +;
+#X text 360 285 l;
+#X text 352 353 FK;
+#X obj 325 392 *;
+#X obj 371 392 *;
+#X obj 325 421 /;
+#X obj 373 422 /;
+#X obj 421 420 *;
+#X obj 408 469 +;
+#X text 321 439 FKx;
+#X text 371 441 FKy;
+#X text 416 442 FCx;
+#X text 465 439 FCy;
+#X text 190 573 F1x;
+#X text 400 571 F2x;
+#X obj 281 551 outlet;
+#X obj 466 552 outlet;
+#X obj 373 499 * -1;
+#X text 286 570 F1y;
+#X text 478 572 F2y;
+#X obj -154 89 t b b b b b b b b b b b b;
+#X obj 322 284 sqrt;
+#X text 565 558 ch20020120;
+#X obj -155 60 r b_spring;
+#X connect 0 0 14 0;
+#X connect 1 0 36 0;
+#X connect 2 0 35 0;
+#X connect 3 0 26 0;
+#X connect 10 0 46 1;
+#X connect 12 0 41 0;
+#X connect 12 0 42 0;
+#X connect 12 0 43 0;
+#X connect 12 0 67 0;
+#X connect 12 0 44 0;
+#X connect 12 0 68 0;
+#X connect 12 0 69 0;
+#X connect 12 0 70 0;
+#X connect 12 0 71 0;
+#X connect 12 0 72 0;
+#X connect 12 0 73 0;
+#X connect 14 0 33 1;
+#X connect 15 0 35 1;
+#X connect 16 0 89 1;
+#X connect 17 0 80 1;
+#X connect 17 0 80 0;
+#X connect 17 0 85 1;
+#X connect 18 0 31 1;
+#X connect 19 0 32 1;
+#X connect 22 0 85 0;
+#X connect 22 0 86 0;
+#X connect 23 0 22 1;
+#X connect 24 0 90 1;
+#X connect 25 0 28 0;
+#X connect 25 0 9 0;
+#X connect 26 0 34 1;
+#X connect 27 0 36 1;
+#X connect 28 0 8 0;
+#X connect 29 0 18 0;
+#X connect 30 0 19 0;
+#X connect 31 0 22 0;
+#X connect 32 0 89 0;
+#X connect 32 0 24 0;
+#X connect 33 0 17 0;
+#X connect 34 0 16 0;
+#X connect 35 0 17 1;
+#X connect 36 0 16 1;
+#X connect 39 0 18 0;
+#X connect 40 0 19 0;
+#X connect 41 0 18 0;
+#X connect 42 0 19 0;
+#X connect 43 0 14 0;
+#X connect 44 0 51 0;
+#X connect 45 0 10 0;
+#X connect 46 0 23 1;
+#X connect 49 0 51 0;
+#X connect 50 0 52 0;
+#X connect 51 0 53 1;
+#X connect 52 0 54 1;
+#X connect 53 0 75 0;
+#X connect 54 0 74 0;
+#X connect 55 0 60 0;
+#X connect 56 0 59 0;
+#X connect 57 0 59 1;
+#X connect 58 0 60 1;
+#X connect 59 0 75 1;
+#X connect 60 0 74 1;
+#X connect 67 0 26 0;
+#X connect 68 0 52 0;
+#X connect 69 0 15 0;
+#X connect 70 0 27 0;
+#X connect 71 0 57 0;
+#X connect 72 0 58 0;
+#X connect 73 0 10 0;
+#X connect 74 0 24 1;
+#X connect 75 0 81 1;
+#X connect 75 0 81 0;
+#X connect 75 0 86 1;
+#X connect 80 0 82 0;
+#X connect 81 0 82 1;
+#X connect 82 0 103 0;
+#X connect 85 0 87 0;
+#X connect 86 0 88 0;
+#X connect 87 0 25 0;
+#X connect 88 0 90 0;
+#X connect 89 0 25 1;
+#X connect 90 0 99 0;
+#X connect 90 0 98 0;
+#X connect 99 0 97 0;
+#X connect 102 1 31 0;
+#X connect 102 2 32 0;
+#X connect 102 3 33 0;
+#X connect 102 4 35 0;
+#X connect 102 5 34 0;
+#X connect 102 6 36 0;
+#X connect 102 7 53 0;
+#X connect 102 8 59 0;
+#X connect 102 9 54 0;
+#X connect 102 10 60 0;
+#X connect 102 11 46 0;
+#X connect 103 0 88 1;
+#X connect 103 0 23 0;
+#X connect 103 0 87 1;
+#X connect 105 0 102 0;
diff --git a/extensions/xgui/physics/mass.pd b/extensions/xgui/physics/mass.pd
new file mode 100644
index 00000000..bed61e42
--- /dev/null
+++ b/extensions/xgui/physics/mass.pd
@@ -0,0 +1,118 @@
+#N canvas 336 189 834 719 10;
+#X obj 24 35 inlet;
+#X obj 30 631 outlet;
+#X text 591 652 dh20020401;
+#X obj 77 86 bang;
+#X msg 24 142 mass= \$1;
+#X obj 466 162 r b_mass;
+#X obj 561 22 valueinit \$1_m \$2;
+#X obj 24 119 value \$1_m;
+#X obj 126 119 concat !xy;
+#X text 23 10 mass name m x y speed_x speed_y;
+#X obj 291 276 concat add;
+#X obj 371 275 value \$1_m;
+#X msg 371 299 divide \$1 \$1;
+#X msg 590 273 ?xy;
+#X obj 222 276 r b_init;
+#X msg 222 301 !xy 0 0;
+#X obj 125 171 convert xy= speed=;
+#X msg 143 87 ?xy;
+#X obj 290 395 vector \$1_speed \$3 \$4;
+#X obj 293 363 convert xy= add;
+#X msg 620 274 ?xy;
+#X obj 291 336 vector \$1_calcul1;
+#X obj 288 423 unpack s f f;
+#X obj 326 451 * 0.01;
+#X obj 386 453 * 0.01;
+#X obj 303 493 pack s f f;
+#X msg 470 273 mult 0.01 0.01;
+#X obj 304 517 route list;
+#X msg 289 451 move;
+#X obj 295 119 atom \$1_pos \$3 \$4;
+#X obj 304 550 atom \$1_pos \$3 \$4;
+#X msg 723 273 ?coord;
+#X obj 124 145 vector \$1_speed \$5 \$6;
+#X obj 337 669 outlet;
+#X obj 297 158 inlet;
+#X obj 297 184 route force;
+#X msg 256 87 1;
+#X msg 289 87 0;
+#X obj 466 188 spigot;
+#X obj 24 62 route !mass ?mass !speed ?speed speed on off;
+#X msg 187 88 !abs \$1;
+#X obj 668 301 vector \$1_speed \$5 \$6;
+#X obj 466 212 t b b b b b b;
+#X obj 387 597 unpack f f;
+#X obj 304 597 unpack f f;
+#X obj 304 574 route coord=;
+#X msg 340 647 mass \$1 \$2 \$3 \$4;
+#X text 507 596 mass x y speed_x speed_y;
+#X obj 339 622 pack f f f f;
+#X msg 668 274 ?xy;
+#X obj 668 328 route xy=;
+#X obj 461 394 value time_interval;
+#X obj 461 371 loadbang;
+#X connect 0 0 39 0;
+#X connect 3 0 7 0;
+#X connect 4 0 1 0;
+#X connect 5 0 38 0;
+#X connect 7 0 4 0;
+#X connect 8 0 32 0;
+#X connect 10 0 21 0;
+#X connect 11 0 12 0;
+#X connect 12 0 21 0;
+#X connect 13 0 21 0;
+#X connect 14 0 15 0;
+#X connect 15 0 21 0;
+#X connect 16 0 1 0;
+#X connect 17 0 32 0;
+#X connect 18 0 22 0;
+#X connect 19 0 18 0;
+#X connect 20 0 18 0;
+#X connect 21 0 19 0;
+#X connect 22 0 28 0;
+#X connect 22 1 23 0;
+#X connect 22 2 24 0;
+#X connect 23 0 25 1;
+#X connect 24 0 25 2;
+#X connect 25 0 27 0;
+#X connect 26 0 21 0;
+#X connect 27 0 30 0;
+#X connect 28 0 25 0;
+#X connect 29 0 1 0;
+#X connect 30 0 45 0;
+#X connect 31 0 30 0;
+#X connect 32 0 16 0;
+#X connect 34 0 35 0;
+#X connect 35 0 10 0;
+#X connect 36 0 38 1;
+#X connect 37 0 38 1;
+#X connect 38 0 42 0;
+#X connect 39 0 7 0;
+#X connect 39 1 3 0;
+#X connect 39 2 8 0;
+#X connect 39 3 17 0;
+#X connect 39 4 40 0;
+#X connect 39 5 36 0;
+#X connect 39 6 37 0;
+#X connect 39 7 29 0;
+#X connect 40 0 32 0;
+#X connect 41 0 50 0;
+#X connect 42 0 31 0;
+#X connect 42 1 49 0;
+#X connect 42 2 20 0;
+#X connect 42 3 13 0;
+#X connect 42 4 26 0;
+#X connect 42 5 11 0;
+#X connect 43 0 48 2;
+#X connect 43 1 48 3;
+#X connect 44 0 48 0;
+#X connect 44 1 48 1;
+#X connect 45 0 44 0;
+#X connect 46 0 33 0;
+#X connect 48 0 46 0;
+#X connect 49 0 41 0;
+#X connect 50 0 43 0;
+#X connect 51 0 23 1;
+#X connect 51 0 24 1;
+#X connect 52 0 51 0;
diff --git a/extensions/xgui/physics/spring.pd b/extensions/xgui/physics/spring.pd
new file mode 100644
index 00000000..b5f75d28
--- /dev/null
+++ b/extensions/xgui/physics/spring.pd
@@ -0,0 +1,155 @@
+#N canvas 207 165 1045 677 10;
+#X obj 13 33 inlet;
+#X obj 21 119 concat !xy;
+#X obj 40 144 concat ?xy;
+#X obj 97 120 concat !xy;
+#X obj 118 143 concat ?xy;
+#X text 912 34 k : N/m;
+#X obj 899 64 inlet;
+#X obj 175 319 outlet;
+#X obj 16 206 convert xy= xy1=;
+#X obj 157 206 convert xy= xy1=;
+#X obj 899 87 route mass;
+#X obj 338 358 vector \$1_calcul_l;
+#X obj 411 270 convert xy= add;
+#X obj 353 190 t b b b b;
+#X msg 453 222 !xy 0 0;
+#X obj 337 405 value \$1_l;
+#X obj 198 120 value \$1_l;
+#X msg 198 143 l= \$1;
+#X msg 375 224 ?xy;
+#X msg 413 223 ?xy;
+#X msg 337 225 ?abs;
+#X obj 338 382 route abs=;
+#X obj 292 121 value \$1_k;
+#X obj 374 15 valueinit \$1_k \$2;
+#X obj 292 144 concat k=;
+#X msg 714 565 !abs \$1;
+#X text 642 29 k : N/m;
+#X obj 653 61 inlet;
+#X obj 653 84 route mass;
+#X obj 607 600 force \$1_s1;
+#X msg 653 571 !abs \$1;
+#X obj 701 632 outlet;
+#X obj 376 146 force \$1_s1;
+#X obj 724 537 * -1;
+#X text 10 7 spring name k l x1 y1 x2 y2;
+#X obj 374 40 valueinit \$1_l \$3;
+#X obj 483 146 force \$1_s2;
+#X msg 376 124 ?force;
+#X msg 482 125 ?force;
+#X obj 13 53 route !xy1 ?xy1 !xy2 ?xy2 !l ?l l !k ?k ?force1 ?force2;
+#X msg 653 108 !xy \$1 \$2;
+#X msg 899 111 !xy \$1 \$2;
+#X obj 653 162 r b_spring;
+#X obj 719 598 force \$1_s2;
+#X obj 774 284 convert xy= add;
+#X msg 816 236 !xy 0 0;
+#X msg 738 238 ?xy;
+#X msg 776 237 ?xy;
+#X msg 665 236 ?abs;
+#X obj 701 372 vector \$1_calcul_kl;
+#X obj 683 442 value \$1_l;
+#X obj 683 466 -;
+#X obj 661 514 *;
+#X obj 661 484 value \$1_k;
+#X obj 651 193 t b b b b b b b;
+#X msg 705 237 ?xy;
+#X obj 700 394 route abs= xy=;
+#X obj 813 625 outlet;
+#X text 853 515 dh20020404;
+#X obj 16 178 vector \$1_p1 \$4 \$5;
+#X obj 157 179 vector \$1_p2 \$6 \$7;
+#X obj 410 247 vector \$1_p1 \$4 \$5;
+#X obj 376 296 vector \$1_p2 \$6 \$7;
+#X obj 773 261 vector \$1_p1 \$4 \$5;
+#X obj 739 310 vector \$1_p2 \$6 \$7;
+#X obj 653 130 vector \$1_p1 \$4 \$5;
+#X obj 899 133 vector \$1_p2 \$6 \$7;
+#X msg 292 98 bang;
+#X msg 198 96 bang;
+#X msg 746 418 !force \$1 \$2;
+#X obj 376 318 convert xy= substract;
+#X obj 739 332 convert xy= substract;
+#X connect 0 0 39 0;
+#X connect 1 0 59 0;
+#X connect 2 0 59 0;
+#X connect 3 0 60 0;
+#X connect 4 0 60 0;
+#X connect 6 0 10 0;
+#X connect 8 0 7 0;
+#X connect 9 0 7 0;
+#X connect 10 0 41 0;
+#X connect 11 0 21 0;
+#X connect 12 0 11 0;
+#X connect 13 0 20 0;
+#X connect 13 1 18 0;
+#X connect 13 2 19 0;
+#X connect 13 3 14 0;
+#X connect 14 0 11 0;
+#X connect 16 0 17 0;
+#X connect 17 0 7 0;
+#X connect 18 0 62 0;
+#X connect 19 0 61 0;
+#X connect 20 0 11 0;
+#X connect 21 0 15 0;
+#X connect 22 0 24 0;
+#X connect 24 0 7 0;
+#X connect 25 0 43 0;
+#X connect 27 0 28 0;
+#X connect 28 0 40 0;
+#X connect 29 1 31 0;
+#X connect 30 0 29 0;
+#X connect 32 0 7 0;
+#X connect 33 0 25 0;
+#X connect 36 0 7 0;
+#X connect 37 0 32 0;
+#X connect 38 0 36 0;
+#X connect 39 0 1 0;
+#X connect 39 1 2 0;
+#X connect 39 2 3 0;
+#X connect 39 3 4 0;
+#X connect 39 4 16 0;
+#X connect 39 5 68 0;
+#X connect 39 6 13 0;
+#X connect 39 7 22 0;
+#X connect 39 8 67 0;
+#X connect 39 9 37 0;
+#X connect 39 10 38 0;
+#X connect 40 0 65 0;
+#X connect 41 0 66 0;
+#X connect 42 0 54 0;
+#X connect 43 1 57 0;
+#X connect 44 0 49 0;
+#X connect 45 0 49 0;
+#X connect 46 0 64 0;
+#X connect 47 0 63 0;
+#X connect 48 0 49 0;
+#X connect 49 0 56 0;
+#X connect 50 0 51 0;
+#X connect 51 0 52 1;
+#X connect 52 0 33 0;
+#X connect 52 0 30 0;
+#X connect 53 0 52 0;
+#X connect 54 0 53 0;
+#X connect 54 1 50 0;
+#X connect 54 2 48 0;
+#X connect 54 3 55 0;
+#X connect 54 4 46 0;
+#X connect 54 5 47 0;
+#X connect 54 6 45 0;
+#X connect 55 0 49 0;
+#X connect 56 0 51 1;
+#X connect 56 1 69 0;
+#X connect 59 0 8 0;
+#X connect 60 0 9 0;
+#X connect 61 0 12 0;
+#X connect 62 0 70 0;
+#X connect 63 0 44 0;
+#X connect 64 0 71 0;
+#X connect 67 0 22 0;
+#X connect 68 0 16 0;
+#X connect 69 0 29 0;
+#X connect 69 0 43 0;
+#X connect 70 0 11 0;
+#X connect 71 0 49 0;
diff --git a/extensions/xgui/physics/vector.pd b/extensions/xgui/physics/vector.pd
new file mode 100644
index 00000000..1195cad9
--- /dev/null
+++ b/extensions/xgui/physics/vector.pd
@@ -0,0 +1,162 @@
+#N canvas 46 212 1098 676 12;
+#X obj 23 75 inlet;
+#X obj 102 619 outlet;
+#X obj 24 157 unpack f f;
+#X obj 42 247 pack f f;
+#X obj 122 157 t b b;
+#X msg 42 270 xy= \$1 \$2;
+#X text 625 537 dh20020401;
+#X text 19 10 vector name x y;
+#X obj 24 206 value \$1_x;
+#X obj 125 206 value \$1_y;
+#X obj 203 244 value \$1_x;
+#X obj 299 244 value \$1_y;
+#X obj 305 279 +;
+#X obj 206 279 +;
+#X obj 256 216 unpack f f;
+#X obj 203 303 value \$1_x;
+#X obj 305 304 value \$1_y;
+#X obj 236 185 t a b;
+#X obj 285 16 valueinit \$1_x \$2;
+#X obj 412 245 value \$1_x;
+#X obj 508 245 value \$1_y;
+#X obj 465 217 unpack f f;
+#X obj 412 304 value \$1_x;
+#X obj 514 305 value \$1_y;
+#X obj 445 185 t a b;
+#X obj 514 280 *;
+#X obj 412 279 *;
+#X text 635 547 dh20020402;
+#X obj 420 401 value \$1_x;
+#X obj 516 401 value \$1_y;
+#X obj 473 373 unpack f f;
+#X obj 420 460 value \$1_x;
+#X obj 522 461 value \$1_y;
+#X obj 521 436 /;
+#X obj 420 435 /;
+#X obj 417 337 t b b a;
+#X obj 287 45 valueinit \$1_y \$3;
+#X obj 629 338 value \$1_x;
+#X obj 669 282 value \$1_y;
+#X obj 664 315 *;
+#X obj 622 373 *;
+#X obj 629 258 t b b;
+#X obj 639 403 +;
+#X obj 639 431 sqrt;
+#X obj 208 396 value \$1_x;
+#X obj 304 396 value \$1_y;
+#X obj 261 368 unpack f f;
+#X obj 208 455 value \$1_x;
+#X obj 310 455 value \$1_y;
+#X obj 205 332 t b b a;
+#X obj 309 430 -;
+#X obj 208 430 -;
+#X obj 756 537 value \$1_x;
+#X obj 852 537 value \$1_y;
+#X obj 756 596 value \$1_x;
+#X obj 852 595 value \$1_y;
+#X obj 784 303 value \$1_x;
+#X obj 824 247 value \$1_y;
+#X obj 819 280 *;
+#X obj 777 338 *;
+#X obj 784 223 t b b;
+#X obj 776 368 +;
+#X obj 776 396 sqrt;
+#X obj 815 498 /;
+#X obj 857 426 t b b;
+#X obj 796 183 t b f b;
+#X obj 852 569 *;
+#X obj 755 571 *;
+#X obj 639 459 concat abs=;
+#X obj 24 106 route !xy ?xy add substract mult divide ?teta ?abs !teta
+!abs rotate;
+#X obj 776 425 select 0;
+#X msg 785 456 0.7;
+#X connect 0 0 69 0;
+#X connect 2 0 8 0;
+#X connect 2 1 9 0;
+#X connect 3 0 5 0;
+#X connect 4 0 8 0;
+#X connect 4 1 9 0;
+#X connect 5 0 1 0;
+#X connect 8 0 3 0;
+#X connect 9 0 3 1;
+#X connect 10 0 13 1;
+#X connect 11 0 12 1;
+#X connect 12 0 16 0;
+#X connect 13 0 15 0;
+#X connect 14 0 13 0;
+#X connect 14 1 12 0;
+#X connect 17 0 14 0;
+#X connect 17 1 11 0;
+#X connect 17 1 10 0;
+#X connect 19 0 26 1;
+#X connect 20 0 25 1;
+#X connect 21 0 26 0;
+#X connect 21 1 25 0;
+#X connect 24 0 21 0;
+#X connect 24 1 20 0;
+#X connect 24 1 19 0;
+#X connect 25 0 23 0;
+#X connect 26 0 22 0;
+#X connect 28 0 34 0;
+#X connect 29 0 33 0;
+#X connect 30 0 34 1;
+#X connect 30 1 33 1;
+#X connect 33 0 32 0;
+#X connect 34 0 31 0;
+#X connect 35 0 28 0;
+#X connect 35 1 29 0;
+#X connect 35 2 30 0;
+#X connect 37 0 40 1;
+#X connect 37 0 40 0;
+#X connect 38 0 39 1;
+#X connect 38 0 39 0;
+#X connect 39 0 42 1;
+#X connect 40 0 42 0;
+#X connect 41 0 37 0;
+#X connect 41 1 38 0;
+#X connect 42 0 43 0;
+#X connect 43 0 68 0;
+#X connect 44 0 51 0;
+#X connect 45 0 50 0;
+#X connect 46 0 51 1;
+#X connect 46 1 50 1;
+#X connect 49 0 44 0;
+#X connect 49 1 45 0;
+#X connect 49 2 46 0;
+#X connect 50 0 48 0;
+#X connect 51 0 47 0;
+#X connect 52 0 67 0;
+#X connect 53 0 66 0;
+#X connect 56 0 59 1;
+#X connect 56 0 59 0;
+#X connect 57 0 58 1;
+#X connect 57 0 58 0;
+#X connect 58 0 61 1;
+#X connect 59 0 61 0;
+#X connect 60 0 56 0;
+#X connect 60 1 57 0;
+#X connect 61 0 62 0;
+#X connect 62 0 70 0;
+#X connect 63 0 67 1;
+#X connect 63 0 66 1;
+#X connect 64 0 52 0;
+#X connect 64 1 53 0;
+#X connect 65 0 64 0;
+#X connect 65 1 63 0;
+#X connect 65 2 60 0;
+#X connect 66 0 55 0;
+#X connect 67 0 54 0;
+#X connect 68 0 1 0;
+#X connect 69 0 2 0;
+#X connect 69 1 4 0;
+#X connect 69 2 17 0;
+#X connect 69 3 49 0;
+#X connect 69 4 24 0;
+#X connect 69 5 35 0;
+#X connect 69 7 41 0;
+#X connect 69 9 65 0;
+#X connect 70 0 71 0;
+#X connect 70 1 63 1;
+#X connect 71 0 63 1;