#N canvas 913 167 636 696 10; #X declare -lib Gem; #X obj 363 187 gemhead; #X obj 363 234 world_light; #X msg 364 141 \; pd dsp 1; #X msg 136 184 FSAA 4; #N canvas 1144 73 300 425 massrender 0; #X obj 112 80 inlet; #X obj 62 311 translateXYZ; #X obj 62 285 separator; #X obj 62 244 gemhead 45; #X obj 62 337 sphere 0.2 20; #X obj 114 168 t b b; #X obj 64 364 color; #X msg 207 229 1 1 1; #X obj 232 61 inlet; #X msg 231 255 1 0 0; #X obj 62 54 loadbang; #X msg 62 194 0; #X obj 112 115 unpack f f f; #X obj 249 130 route 0; #X connect 0 0 12 0; #X connect 1 0 4 0; #X connect 2 0 1 0; #X connect 3 0 2 0; #X connect 4 0 6 0; #X connect 5 0 7 0; #X connect 5 1 3 0; #X connect 7 0 6 1; #X connect 8 0 9 0; #X connect 9 0 6 1; #X connect 10 0 11 0; #X connect 11 0 3 0; #X connect 12 0 13 0; #X connect 12 1 1 1; #X connect 12 2 1 2; #X connect 13 1 5 0; #X restore 51 627 pd massrender; #X obj 51 350 gemhead; #X obj 51 328 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 ; #X msg 51 373 get massesPos sable; #N canvas 754 153 608 476 creation 0; #X obj 198 405 t a; #X obj 196 30 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X msg 207 72 reset; #X obj 128 28 loadbang; #X text 234 32 Reset; #X text 263 89 Random positions and masses; #N canvas 826 356 716 390 masses 0; #X msg 417 145 seed 1; #X msg 342 144 seed 2; #X obj 43 15 inlet; #X obj 238 362 outlet; #X obj 419 97 loadbang; #X obj 223 68 t b b; #X obj 43 78 f; #X obj 73 78 + 1; #X msg 43 41 0; #X msg 237 294 mass sable 1 1 \$1 \$2; #X obj 237 274 pack f f; #X obj 254 218 - 3; #X obj 336 223 - 3; #X obj 253 170 random 30; #X obj 339 172 random 30; #X obj 336 201 / 5; #X obj 254 196 / 5; #X obj 74 101 moses 32.5; #X connect 0 0 14 0; #X connect 1 0 13 0; #X connect 2 0 8 0; #X connect 4 0 1 0; #X connect 4 0 0 0; #X connect 5 0 13 0; #X connect 5 1 14 0; #X connect 6 0 7 0; #X connect 6 0 5 0; #X connect 7 0 17 0; #X connect 8 0 6 0; #X connect 9 0 3 0; #X connect 10 0 9 0; #X connect 11 0 10 0; #X connect 12 0 10 1; #X connect 13 0 16 0; #X connect 14 0 15 0; #X connect 15 0 12 0; #X connect 16 0 11 0; #X connect 17 0 6 0; #X restore 185 93 pd masses; #X obj 128 49 t b b b b; #X obj 40 149 t b b b b; #X msg 155 133 mass fixe 0 1 0 0; #X obj 197 434 outlet; #X obj 94 7 inlet; #X msg 36 375 Xmax 1111 \, Xmin -1111 \, Ymax 1111 \, Ymin -1111; #X msg 48 338 setL linkD 1000 \, setL linkG 1000 \, setL linkH 1000 \, setL linkB 1000; #X msg 108 256 link linkD MlinkD sable 0.01 0 1 1000 100000; #X msg 103 276 link linkG MlinkG sable 0.01 0 1 1000 100000; #X msg 90 295 link linkH MlinkH sable 0.01 0 1 1000 100000; #X msg 78 315 link linkB MlinkB sable 0.01 0 1 1000 100000; #X msg 167 113 link rebond sable sable 0.003 0.005 1 0 0.4; #X msg 146 153 setL rebond 0.4; #X msg 120 221 mass MlinkD 0 1 -993.8 0 \, mass MlinkG 0 1 993.8 0 \, mass MlinkH 0 1 0 996.2 \, mass MlinkB 0 1 0 -996.2; #X msg 129 194 setDEnv sable 0.0001; #X connect 0 0 10 0; #X connect 1 0 7 0; #X connect 2 0 0 0; #X connect 3 0 7 0; #X connect 6 0 0 0; #X connect 7 0 8 0; #X connect 7 0 19 0; #X connect 7 1 18 0; #X connect 7 1 9 0; #X connect 7 2 6 0; #X connect 7 3 2 0; #X connect 8 1 13 0; #X connect 8 2 14 0; #X connect 8 2 16 0; #X connect 8 2 17 0; #X connect 8 2 15 0; #X connect 8 3 20 0; #X connect 8 3 21 0; #X connect 9 0 0 0; #X connect 11 0 7 0; #X connect 12 0 0 0; #X connect 13 0 0 0; #X connect 14 0 0 0; #X connect 15 0 0 0; #X connect 16 0 0 0; #X connect 17 0 0 0; #X connect 18 0 0 0; #X connect 19 0 0 0; #X connect 20 0 0 0; #X connect 21 0 0 0; #X restore 68 494 pd creation; #X obj 89 515 bang~; #X msg 89 539 get massesForces; #N canvas 0 22 450 300 simulation_gravite 0; #X msg 28 224 forceX sable \$1; #X msg 142 224 forceY sable \$1; #X obj 29 60 min 80; #X obj 28 82 max 0; #X obj 28 107 - 40; #X obj 142 60 min 80; #X obj 141 82 max 0; #X obj 143 151 - 40; #X obj 142 102 * -1; #X obj 143 126 + 80; #X obj 48 132 bang~; #X obj 30 39 inlet; #X obj 140 38 inlet; #X obj 25 257 outlet; #X obj 125 179 f; #X obj 36 178 f; #X obj 31 201 / 2e+06; #X obj 145 200 / 2e+06; #X connect 0 0 13 0; #X connect 1 0 13 0; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 15 1; #X connect 5 0 6 0; #X connect 6 0 8 0; #X connect 7 0 14 1; #X connect 8 0 9 0; #X connect 9 0 7 0; #X connect 10 0 14 0; #X connect 10 0 15 0; #X connect 11 0 2 0; #X connect 12 0 5 0; #X connect 14 0 17 0; #X connect 15 0 16 0; #X connect 16 0 0 0; #X connect 17 0 1 0; #X restore 212 496 pd simulation_gravite; #X obj 68 475 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 65 417 metro 1; #X obj 65 396 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 ; #X msg 109 145 view 0 0 40 0 0 0 0 1 0; #X msg 119 165 perspec -0.1 0.1 -0.1 0.1 1 100; #X obj 116 119 b; #X obj 135 96 loadbang; #X obj 116 95 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 363 212 rotateXYZ -30 -20 0; #X obj 65 444 t b b; #X msg 209 242 destroy; #X obj 209 197 key; #X obj 209 218 sel 27; #X msg 90 396 1; #X msg 88 61 dimen 1680 1050 \, cursor 0; #X obj 52 282 gemwin 58; #X msg 51 13 dimen 672 420; #X msg 69 38 create \, lighting 1 \, 1; #N canvas 0 22 450 300 sound 0; #X obj 19 279 dac~; #X obj 202 220 *~ 1; #X obj 268 191 sound_sable 28 29; #X obj 43 101 sound_sable 12 13; #X obj 20 61 sound_sable 4 5; #X obj 79 164 sound_sable 24 25; #X obj 33 80 sound_sable 8 9; #X obj 56 123 sound_sable 16 17; #X obj 66 144 sound_sable 20 21; #X obj 191 43 sound_sable 2 3; #X obj 201 64 sound_sable 6 7; #X obj 214 83 sound_sable 10 11; #X obj 224 104 sound_sable 14 15; #X obj 237 126 sound_sable 18 19; #X obj 247 148 sound_sable 22 23; #X obj 260 167 sound_sable 26 27; #X obj 277 212 sound_sable 30 31; #X obj 19 246 *~ 0.2; #X obj 13 11 inlet; #X obj 10 40 sound_sable 0 1; #X connect 1 0 17 0; #X connect 2 0 1 0; #X connect 2 1 16 0; #X connect 3 0 17 0; #X connect 3 1 7 0; #X connect 4 0 17 0; #X connect 4 1 6 0; #X connect 5 0 17 0; #X connect 5 1 9 0; #X connect 6 0 17 0; #X connect 6 1 3 0; #X connect 7 0 17 0; #X connect 7 1 8 0; #X connect 8 0 17 0; #X connect 8 1 5 0; #X connect 9 0 1 0; #X connect 9 1 10 0; #X connect 10 0 1 0; #X connect 10 1 11 0; #X connect 11 0 1 0; #X connect 11 1 12 0; #X connect 12 0 1 0; #X connect 12 1 13 0; #X connect 13 0 1 0; #X connect 13 1 14 0; #X connect 14 0 1 0; #X connect 14 1 15 0; #X connect 15 0 1 0; #X connect 15 1 2 0; #X connect 16 0 1 0; #X connect 17 0 0 0; #X connect 17 0 0 1; #X connect 18 0 19 0; #X connect 19 0 17 0; #X connect 19 1 4 0; #X restore 153 626 pd sound; #X obj 51 596 route massesPosId massesForces; #X msg 149 427 infosL; #X obj 51 575 pmpd2d --------------------------------; #X obj 126 395 loadbang; #X obj 364 120 loadbang; #X obj 213 462 gemmouse 80 80; #X text 124 661 moove the mouse on the screen to simulate gravity; #X obj 362 47 declare -lib Gem; #X connect 0 0 20 0; #X connect 3 0 27 0; #X connect 5 0 7 0; #X connect 6 0 5 0; #X connect 7 0 33 0; #X connect 8 0 33 0; #X connect 9 0 10 0; #X connect 10 0 33 0; #X connect 11 0 33 0; #X connect 12 0 8 0; #X connect 13 0 21 0; #X connect 14 0 13 0; #X connect 15 0 27 0; #X connect 16 0 27 0; #X connect 17 0 15 0; #X connect 17 0 16 0; #X connect 17 0 3 0; #X connect 18 0 17 0; #X connect 19 0 17 0; #X connect 20 0 1 0; #X connect 21 0 33 0; #X connect 21 1 4 1; #X connect 22 0 27 0; #X connect 23 0 24 0; #X connect 24 0 22 0; #X connect 25 0 14 0; #X connect 26 0 27 0; #X connect 28 0 27 0; #X connect 29 0 27 0; #X connect 31 0 4 0; #X connect 31 1 30 0; #X connect 32 0 33 0; #X connect 33 0 31 0; #X connect 34 0 25 0; #X connect 35 0 2 0; #X connect 36 0 11 0; #X connect 36 1 11 1;