#N canvas 24 61 1256 708 10; #X declare -lib zexy; #X declare -path zexy; #X obj 105 407 bng 15 250 50 0 empty empty empty 17 7 0 10 -2112 -1 -1; #X obj 105 343 tgl 30 0 empty empty empty 17 7 0 10 -2112 -1 -1 1 1 ; #X obj 105 381 metro 50; #X msg 145 407 info; #X obj 227 471 leapmotion; #X obj 337 488 s gesture; #N canvas 415 24 450 300 general 0; #X obj 169 75 unpack 0 0 0 0 0 0; #X floatatom 169 122 10 0 0 0 frameID - -; #X floatatom 169 142 10 0 0 0 timestamp - -; #X floatatom 169 162 5 0 0 0 hands - -; #X floatatom 169 182 5 0 0 0 fingers - -; #X floatatom 169 202 5 0 0 0 tools - -; #X floatatom 169 222 5 0 0 0 gestures - -; #X obj 169 49 r general; #X connect 0 0 1 0; #X connect 0 1 2 0; #X connect 0 2 3 0; #X connect 0 3 4 0; #X connect 0 4 5 0; #X connect 0 5 6 0; #X connect 7 0 0 0; #X coords 0 -1 1 1 150 140 1 100 100; #X restore 75 174 pd general; #X obj 187 535 s general; #X obj 254 536 outlet hand; #X obj 227 85 gemhead 100; #X obj 227 134 send gemlist; #X text 1128 189 direction; #X text 1128 243 position; #X text 1128 297 velocity; #X text 1128 351 size; #N canvas 435 155 670 466 tool1 0; #X floatatom 124 116 5 0 0 0 x - -; #X floatatom 124 133 5 0 0 0 y - -; #X floatatom 124 150 5 0 0 0 z - -; #X obj 174 113 unpack 0 0 0; #X floatatom 124 222 5 0 0 0 x - -; #X floatatom 124 238 5 0 0 0 y - -; #X floatatom 124 255 5 0 0 0 z - -; #X obj 174 222 unpack 0 0 0; #X floatatom 124 275 5 0 0 0 wdt - -; #X floatatom 124 291 5 0 0 0 len - -; #X obj 173 276 unpack 0 0; #X obj 174 81 route direction position velocity size; #X floatatom 124 169 5 0 0 0 x - -; #X floatatom 124 185 5 0 0 0 y - -; #X floatatom 124 202 5 0 0 0 z - -; #X obj 174 169 unpack 0 0 0; #X obj 293 170 r gemlist; #X obj 368 227 spigot; #X msg 436 193 0; #X msg 409 138 bang; #X msg 409 169 1; #X obj 174 30 r tool; #X obj 436 165 delay 100; #X obj 422 77 route direction position velocity size; #X obj 293 195 separator; #N canvas 341 404 450 300 translate_gem 0; #X obj 82 69 unpack 0 0 0; #X obj 84 35 inlet; #X obj 30 207 translateXYZ; #X obj 28 153 inlet; #X obj 36 249 outlet; #X obj 65 124 / 40; #X obj 155 147 / 40; #X obj 115 126 / 40; #X obj 116 98 - 300; #X obj 160 119 - 100; #X obj 220 64 r setZ; #X obj 171 60 r setY; #X connect 0 0 5 0; #X connect 0 1 8 0; #X connect 0 2 9 0; #X connect 1 0 0 0; #X connect 2 0 4 0; #X connect 3 0 2 0; #X connect 5 0 2 1; #X connect 6 0 2 3; #X connect 7 0 2 2; #X connect 8 0 7 0; #X connect 9 0 6 0; #X connect 10 0 9 1; #X connect 11 0 8 1; #X restore 369 253 pd translate_gem; #N canvas 352 208 986 439 rotateXYZ 0; #X obj 118 19 unpack 0 0 0; #X obj 158 196 atan2; #X obj 182 159 * -1; #X obj 159 221 rad2deg; #X obj 318 202 atan2; #X obj 319 227 rad2deg; #X obj 452 203 atan2; #X obj 453 228 rad2deg; #X obj 168 386 outlet X; #X obj 324 390 outlet Y; #X obj 117 -9 inlet; #X obj 474 172 * -1; #X obj 340 171 * 1; #X obj 80 183 inlet; #X obj 84 272 outlet; #X obj 82 219 rotateXYZ; #X connect 0 0 4 0; #X connect 0 0 6 0; #X connect 0 1 1 0; #X connect 0 1 11 0; #X connect 0 2 2 0; #X connect 0 2 12 0; #X connect 1 0 3 0; #X connect 2 0 1 1; #X connect 3 0 8 0; #X connect 3 0 15 1; #X connect 4 0 5 0; #X connect 5 0 9 0; #X connect 5 0 15 2; #X connect 6 0 7 0; #X connect 10 0 0 0; #X connect 11 0 6 1; #X connect 12 0 4 1; #X connect 13 0 15 0; #X connect 15 0 14 0; #X restore 365 301 pd rotateXYZ; #X obj 364 364 cube; #X obj 362 336 scaleXYZ 0.1 0.1 3; #X floatatom 139 368 5 0 0 0 len - -; #X obj 138 337 / 40; #X msg 480 363 draw line; #X obj 480 341 initbang; #X obj 174 55 route 1; #X connect 3 0 0 0; #X connect 3 1 1 0; #X connect 3 2 2 0; #X connect 7 0 4 0; #X connect 7 1 5 0; #X connect 7 2 6 0; #X connect 9 0 30 0; #X connect 10 0 8 0; #X connect 10 1 9 0; #X connect 11 0 3 0; #X connect 11 1 15 0; #X connect 11 2 7 0; #X connect 11 3 10 0; #X connect 15 0 12 0; #X connect 15 1 13 0; #X connect 15 2 14 0; #X connect 16 0 24 0; #X connect 17 0 25 0; #X connect 18 0 17 1; #X connect 19 0 20 0; #X connect 19 0 22 0; #X connect 20 0 17 1; #X connect 21 0 33 0; #X connect 22 0 18 0; #X connect 23 0 26 1; #X connect 23 1 25 1; #X connect 24 0 17 0; #X connect 25 0 26 0; #X connect 26 0 28 0; #X connect 28 0 27 0; #X connect 30 0 28 3; #X connect 30 0 29 0; #X connect 31 0 27 0; #X connect 32 0 31 0; #X connect 33 0 11 0; #X connect 33 0 23 0; #X connect 33 0 19 0; #X coords 0 -1 1 1 60 210 1 100 100; #X restore 1062 170 pd tool1; #N canvas 275 158 670 466 tool0 0; #X floatatom 124 116 5 0 0 0 x - -; #X floatatom 124 133 5 0 0 0 y - -; #X floatatom 124 150 5 0 0 0 z - -; #X obj 174 113 unpack 0 0 0; #X floatatom 124 222 5 0 0 0 x - -; #X floatatom 124 238 5 0 0 0 y - -; #X floatatom 124 255 5 0 0 0 z - -; #X obj 174 222 unpack 0 0 0; #X floatatom 124 275 5 0 0 0 wdt - -; #X floatatom 124 291 5 0 0 0 len - -; #X obj 173 276 unpack 0 0; #X obj 174 81 route direction position velocity size; #X floatatom 124 169 5 0 0 0 x - -; #X floatatom 124 185 5 0 0 0 y - -; #X floatatom 124 202 5 0 0 0 z - -; #X obj 174 169 unpack 0 0 0; #X obj 293 170 r gemlist; #X obj 368 227 spigot; #X msg 436 193 0; #X msg 409 138 bang; #X msg 409 169 1; #X obj 174 30 r tool; #X obj 436 165 delay 100; #X obj 422 77 route direction position velocity size; #X obj 293 195 separator; #N canvas 341 404 450 300 translate_gem 0; #X obj 82 69 unpack 0 0 0; #X obj 84 35 inlet; #X obj 30 207 translateXYZ; #X obj 28 153 inlet; #X obj 36 249 outlet; #X obj 65 124 / 40; #X obj 155 147 / 40; #X obj 115 126 / 40; #X obj 116 98 - 300; #X obj 176 116 - 100; #X obj 207 84 r setZ; #X obj 161 50 r setY; #X connect 0 0 5 0; #X connect 0 1 8 0; #X connect 0 2 9 0; #X connect 1 0 0 0; #X connect 2 0 4 0; #X connect 3 0 2 0; #X connect 5 0 2 1; #X connect 6 0 2 3; #X connect 7 0 2 2; #X connect 8 0 7 0; #X connect 9 0 6 0; #X connect 10 0 9 1; #X connect 11 0 8 1; #X restore 369 253 pd translate_gem; #N canvas 352 208 986 439 rotateXYZ 0; #X obj 118 19 unpack 0 0 0; #X obj 158 196 atan2; #X obj 182 159 * -1; #X obj 159 221 rad2deg; #X obj 318 202 atan2; #X obj 319 227 rad2deg; #X obj 452 203 atan2; #X obj 453 228 rad2deg; #X obj 168 386 outlet X; #X obj 324 390 outlet Y; #X obj 117 -9 inlet; #X obj 474 172 * -1; #X obj 340 171 * 1; #X obj 80 183 inlet; #X obj 84 272 outlet; #X obj 82 219 rotateXYZ; #X connect 0 0 4 0; #X connect 0 0 6 0; #X connect 0 1 1 0; #X connect 0 1 11 0; #X connect 0 2 2 0; #X connect 0 2 12 0; #X connect 1 0 3 0; #X connect 2 0 1 1; #X connect 3 0 8 0; #X connect 3 0 15 1; #X connect 4 0 5 0; #X connect 5 0 9 0; #X connect 5 0 15 2; #X connect 6 0 7 0; #X connect 10 0 0 0; #X connect 11 0 6 1; #X connect 12 0 4 1; #X connect 13 0 15 0; #X connect 15 0 14 0; #X restore 365 301 pd rotateXYZ; #X obj 364 364 cube; #X floatatom 139 368 5 0 0 0 len - -; #X obj 138 337 / 40; #X msg 480 363 draw line; #X obj 480 341 initbang; #X obj 174 55 route 0; #X obj 362 336 scaleXYZ 0.1 0.1 3; #X connect 3 0 0 0; #X connect 3 1 1 0; #X connect 3 2 2 0; #X connect 7 0 4 0; #X connect 7 1 5 0; #X connect 7 2 6 0; #X connect 9 0 29 0; #X connect 10 0 8 0; #X connect 10 1 9 0; #X connect 11 0 3 0; #X connect 11 1 15 0; #X connect 11 2 7 0; #X connect 11 3 10 0; #X connect 15 0 12 0; #X connect 15 1 13 0; #X connect 15 2 14 0; #X connect 16 0 24 0; #X connect 17 0 25 0; #X connect 18 0 17 1; #X connect 19 0 20 0; #X connect 19 0 22 0; #X connect 20 0 17 1; #X connect 21 0 32 0; #X connect 22 0 18 0; #X connect 23 0 26 1; #X connect 23 1 25 1; #X connect 24 0 17 0; #X connect 25 0 26 0; #X connect 26 0 33 0; #X connect 29 0 28 0; #X connect 29 0 33 3; #X connect 30 0 27 0; #X connect 31 0 30 0; #X connect 32 0 11 0; #X connect 32 0 23 0; #X connect 32 0 19 0; #X connect 33 0 27 0; #X coords 0 -1 1 1 60 210 1 100 100; #X restore 689 174 pd tool0; #N canvas 138 176 895 680 finger0 0; #X floatatom 124 116 5 0 0 0 x - -; #X floatatom 124 133 5 0 0 0 y - -; #X floatatom 124 150 5 0 0 0 z - -; #X obj 174 113 unpack 0 0 0; #X floatatom 124 222 5 0 0 0 x - -; #X floatatom 124 238 5 0 0 0 y - -; #X floatatom 124 255 5 0 0 0 z - -; #X obj 174 222 unpack 0 0 0; #X floatatom 124 275 5 0 0 0 wdt - -; #X floatatom 124 291 5 0 0 0 len - -; #X obj 173 276 unpack 0 0; #X obj 174 81 route direction position velocity size; #X floatatom 124 169 5 0 0 0 x - -; #X floatatom 124 185 5 0 0 0 y - -; #X floatatom 124 202 5 0 0 0 z - -; #X obj 174 169 unpack 0 0 0; #X obj 268 155 r gemlist; #X obj 290 208 spigot; #X msg 358 169 0; #X msg 331 114 bang; #X msg 331 145 1; #X obj 290 235 curve 2; #X obj 391 -37 route fingers palm_position; #X obj 289 268 separator; #N canvas 736 314 450 300 translate_gem 0; #X obj 82 69 unpack 0 0 0; #X obj 84 35 inlet; #X obj 30 207 translateXYZ; #X obj 28 153 inlet; #X obj 36 249 outlet; #X obj 65 124 / 40; #X obj 155 147 / 40; #X obj 115 126 / 40; #X obj 116 98 - 300; #X obj 166 101 - 100; #X obj 197 74 r setZ; #X obj 151 40 r setY; #X obj 132 207 outlet; #X obj 132 181 pack f f f; #X connect 0 0 5 0; #X connect 0 1 8 0; #X connect 0 2 9 0; #X connect 1 0 0 0; #X connect 2 0 4 0; #X connect 3 0 2 0; #X connect 5 0 2 1; #X connect 5 0 13 0; #X connect 6 0 2 3; #X connect 6 0 13 2; #X connect 7 0 2 2; #X connect 7 0 13 1; #X connect 8 0 7 0; #X connect 9 0 6 0; #X connect 10 0 9 1; #X connect 11 0 8 1; #X connect 13 0 12 0; #X restore 288 299 pd translate_gem; #N canvas 736 314 450 300 translate_gem 0; #X obj 82 69 unpack 0 0 0; #X obj 84 35 inlet; #X obj 65 124 / 40; #X obj 155 147 / 40; #X obj 115 126 / 40; #X obj 116 98 - 300; #X obj 166 101 - 100; #X obj 197 74 r setZ; #X obj 151 40 r setY; #X obj 132 207 outlet; #X obj 132 181 pack f f f; #X connect 0 0 2 0; #X connect 0 1 5 0; #X connect 0 2 6 0; #X connect 1 0 0 0; #X connect 2 0 10 0; #X connect 3 0 10 2; #X connect 4 0 10 1; #X connect 5 0 4 0; #X connect 6 0 3 0; #X connect 7 0 6 1; #X connect 8 0 5 1; #X connect 10 0 9 0; #X restore 470 -10 pd translate_gem; #X obj 358 141 delay 100; #X obj 390 -15 route 0; #X obj 392 -63 inlet; #X msg 410 324 draw line; #X obj 410 298 initbang; #X obj 289 369 cube 0.5; #N canvas 91 114 986 439 rotateXYZ 0; #X obj 118 19 unpack 0 0 0; #X obj 158 196 atan2; #X obj 182 159 * -1; #X obj 159 221 rad2deg; #X obj 318 202 atan2; #X obj 319 227 rad2deg; #X obj 452 203 atan2; #X obj 453 228 rad2deg; #X obj 168 386 outlet X; #X obj 324 390 outlet Y; #X obj 117 -9 inlet; #X obj 474 172 * -1; #X obj 340 171 * 1; #X obj 80 183 inlet; #X obj 84 272 outlet; #X obj 82 219 rotateXYZ; #X connect 0 0 4 0; #X connect 0 0 6 0; #X connect 0 1 1 0; #X connect 0 1 11 0; #X connect 0 2 2 0; #X connect 0 2 12 0; #X connect 1 0 3 0; #X connect 2 0 1 1; #X connect 3 0 8 0; #X connect 3 0 15 1; #X connect 4 0 5 0; #X connect 5 0 9 0; #X connect 5 0 15 2; #X connect 6 0 7 0; #X connect 10 0 0 0; #X connect 11 0 6 1; #X connect 12 0 4 1; #X connect 13 0 15 0; #X connect 15 0 14 0; #X restore 290 327 pd rotateXYZ; #X obj 269 183 separator; #X connect 3 0 0 0; #X connect 3 1 1 0; #X connect 3 2 2 0; #X connect 7 0 4 0; #X connect 7 1 5 0; #X connect 7 2 6 0; #X connect 10 0 8 0; #X connect 10 1 9 0; #X connect 11 0 3 0; #X connect 11 0 19 0; #X connect 11 0 32 1; #X connect 11 1 15 0; #X connect 11 1 24 1; #X connect 11 2 7 0; #X connect 11 3 10 0; #X connect 15 0 12 0; #X connect 15 1 13 0; #X connect 15 2 14 0; #X connect 16 0 33 0; #X connect 17 0 21 0; #X connect 18 0 17 1; #X connect 19 0 20 0; #X connect 19 0 26 0; #X connect 20 0 17 1; #X connect 21 0 23 0; #X connect 22 0 27 0; #X connect 22 1 25 0; #X connect 23 0 24 0; #X connect 24 0 32 0; #X connect 24 1 21 2; #X connect 25 0 21 1; #X connect 26 0 18 0; #X connect 27 0 11 0; #X connect 28 0 22 0; #X connect 29 0 31 0; #X connect 30 0 29 0; #X connect 32 0 31 0; #X connect 33 0 17 0; #X coords 0 -1 1 1 60 210 1 100 100; #X restore 481 487 pd finger0; #N canvas 345 149 895 680 finger1 0; #X floatatom 124 116 5 0 0 0 x - -; #X floatatom 124 133 5 0 0 0 y - -; #X floatatom 124 150 5 0 0 0 z - -; #X obj 174 113 unpack 0 0 0; #X floatatom 124 222 5 0 0 0 x - -; #X floatatom 124 238 5 0 0 0 y - -; #X floatatom 124 255 5 0 0 0 z - -; #X obj 174 222 unpack 0 0 0; #X floatatom 124 275 5 0 0 0 wdt - -; #X floatatom 124 291 5 0 0 0 len - -; #X obj 173 276 unpack 0 0; #X obj 174 81 route direction position velocity size; #X floatatom 124 169 5 0 0 0 x - -; #X floatatom 124 185 5 0 0 0 y - -; #X floatatom 124 202 5 0 0 0 z - -; #X obj 174 169 unpack 0 0 0; #X obj 268 155 r gemlist; #X obj 290 208 spigot; #X msg 358 169 0; #X msg 331 114 bang; #X msg 331 145 1; #X obj 290 235 curve 2; #X obj 391 -37 route fingers palm_position; #X obj 289 298 separator; #N canvas 736 314 450 300 translate_gem 0; #X obj 82 69 unpack 0 0 0; #X obj 84 35 inlet; #X obj 30 207 translateXYZ; #X obj 28 153 inlet; #X obj 36 249 outlet; #X obj 65 124 / 40; #X obj 155 147 / 40; #X obj 115 126 / 40; #X obj 116 98 - 300; #X obj 166 101 - 100; #X obj 197 74 r setZ; #X obj 151 40 r setY; #X obj 132 207 outlet; #X obj 132 181 pack f f f; #X connect 0 0 5 0; #X connect 0 1 8 0; #X connect 0 2 9 0; #X connect 1 0 0 0; #X connect 2 0 4 0; #X connect 3 0 2 0; #X connect 5 0 2 1; #X connect 5 0 13 0; #X connect 6 0 2 3; #X connect 6 0 13 2; #X connect 7 0 2 2; #X connect 7 0 13 1; #X connect 8 0 7 0; #X connect 9 0 6 0; #X connect 10 0 9 1; #X connect 11 0 8 1; #X connect 13 0 12 0; #X restore 288 329 pd translate_gem; #N canvas 736 314 450 300 translate_gem 0; #X obj 82 69 unpack 0 0 0; #X obj 84 35 inlet; #X obj 65 124 / 40; #X obj 155 147 / 40; #X obj 115 126 / 40; #X obj 116 98 - 300; #X obj 166 101 - 100; #X obj 197 74 r setZ; #X obj 151 40 r setY; #X obj 132 207 outlet; #X obj 132 181 pack f f f; #X connect 0 0 2 0; #X connect 0 1 5 0; #X connect 0 2 6 0; #X connect 1 0 0 0; #X connect 2 0 10 0; #X connect 3 0 10 2; #X connect 4 0 10 1; #X connect 5 0 4 0; #X connect 6 0 3 0; #X connect 7 0 6 1; #X connect 8 0 5 1; #X connect 10 0 9 0; #X restore 470 -10 pd translate_gem; #X obj 358 141 delay 100; #X obj 392 -63 inlet; #X msg 410 354 draw line; #X obj 410 328 initbang; #X obj 289 399 cube 0.5; #N canvas 91 114 986 439 rotateXYZ 0; #X obj 118 19 unpack 0 0 0; #X obj 158 196 atan2; #X obj 182 159 * -1; #X obj 159 221 rad2deg; #X obj 318 202 atan2; #X obj 319 227 rad2deg; #X obj 452 203 atan2; #X obj 453 228 rad2deg; #X obj 168 386 outlet X; #X obj 324 390 outlet Y; #X obj 117 -9 inlet; #X obj 474 172 * -1; #X obj 340 171 * 1; #X obj 80 183 inlet; #X obj 84 272 outlet; #X obj 82 219 rotateXYZ; #X connect 0 0 4 0; #X connect 0 0 6 0; #X connect 0 1 1 0; #X connect 0 1 11 0; #X connect 0 2 2 0; #X connect 0 2 12 0; #X connect 1 0 3 0; #X connect 2 0 1 1; #X connect 3 0 8 0; #X connect 3 0 15 1; #X connect 4 0 5 0; #X connect 5 0 9 0; #X connect 5 0 15 2; #X connect 6 0 7 0; #X connect 10 0 0 0; #X connect 11 0 6 1; #X connect 12 0 4 1; #X connect 13 0 15 0; #X connect 15 0 14 0; #X restore 290 357 pd rotateXYZ; #X obj 269 183 separator; #X obj 390 -15 route 1; #X connect 3 0 0 0; #X connect 3 1 1 0; #X connect 3 2 2 0; #X connect 7 0 4 0; #X connect 7 1 5 0; #X connect 7 2 6 0; #X connect 10 0 8 0; #X connect 10 1 9 0; #X connect 11 0 3 0; #X connect 11 0 19 0; #X connect 11 0 31 1; #X connect 11 1 15 0; #X connect 11 1 24 1; #X connect 11 2 7 0; #X connect 11 3 10 0; #X connect 15 0 12 0; #X connect 15 1 13 0; #X connect 15 2 14 0; #X connect 16 0 32 0; #X connect 17 0 21 0; #X connect 18 0 17 1; #X connect 19 0 20 0; #X connect 19 0 26 0; #X connect 20 0 17 1; #X connect 21 0 23 0; #X connect 22 0 33 0; #X connect 22 1 25 0; #X connect 23 0 24 0; #X connect 24 0 31 0; #X connect 24 1 21 2; #X connect 25 0 21 1; #X connect 26 0 18 0; #X connect 27 0 22 0; #X connect 28 0 30 0; #X connect 29 0 28 0; #X connect 31 0 30 0; #X connect 32 0 17 0; #X connect 33 0 11 0; #X coords 0 -1 1 1 60 210 1 100 100; #X restore 555 487 pd finger1; #N canvas 345 149 895 680 finger2 0; #X floatatom 124 116 5 0 0 0 x - -; #X floatatom 124 133 5 0 0 0 y - -; #X floatatom 124 150 5 0 0 0 z - -; #X obj 174 113 unpack 0 0 0; #X floatatom 124 222 5 0 0 0 x - -; #X floatatom 124 238 5 0 0 0 y - -; #X floatatom 124 255 5 0 0 0 z - -; #X obj 174 222 unpack 0 0 0; #X floatatom 124 275 5 0 0 0 wdt - -; #X floatatom 124 291 5 0 0 0 len - -; #X obj 173 276 unpack 0 0; #X obj 174 81 route direction position velocity size; #X floatatom 124 169 5 0 0 0 x - -; #X floatatom 124 185 5 0 0 0 y - -; #X floatatom 124 202 5 0 0 0 z - -; #X obj 174 169 unpack 0 0 0; #X obj 268 155 r gemlist; #X obj 290 208 spigot; #X msg 358 169 0; #X msg 331 114 bang; #X msg 331 145 1; #X obj 290 235 curve 2; #X obj 391 -37 route fingers palm_position; #X obj 289 268 separator; #N canvas 736 314 450 300 translate_gem 0; #X obj 82 69 unpack 0 0 0; #X obj 84 35 inlet; #X obj 30 207 translateXYZ; #X obj 28 153 inlet; #X obj 36 249 outlet; #X obj 65 124 / 40; #X obj 155 147 / 40; #X obj 115 126 / 40; #X obj 116 98 - 300; #X obj 166 101 - 100; #X obj 197 74 r setZ; #X obj 151 40 r setY; #X obj 132 207 outlet; #X obj 132 181 pack f f f; #X connect 0 0 5 0; #X connect 0 1 8 0; #X connect 0 2 9 0; #X connect 1 0 0 0; #X connect 2 0 4 0; #X connect 3 0 2 0; #X connect 5 0 2 1; #X connect 5 0 13 0; #X connect 6 0 2 3; #X connect 6 0 13 2; #X connect 7 0 2 2; #X connect 7 0 13 1; #X connect 8 0 7 0; #X connect 9 0 6 0; #X connect 10 0 9 1; #X connect 11 0 8 1; #X connect 13 0 12 0; #X restore 288 299 pd translate_gem; #N canvas 736 314 450 300 translate_gem 0; #X obj 82 69 unpack 0 0 0; #X obj 84 35 inlet; #X obj 65 124 / 40; #X obj 155 147 / 40; #X obj 115 126 / 40; #X obj 116 98 - 300; #X obj 166 101 - 100; #X obj 197 74 r setZ; #X obj 151 40 r setY; #X obj 132 207 outlet; #X obj 132 181 pack f f f; #X connect 0 0 2 0; #X connect 0 1 5 0; #X connect 0 2 6 0; #X connect 1 0 0 0; #X connect 2 0 10 0; #X connect 3 0 10 2; #X connect 4 0 10 1; #X connect 5 0 4 0; #X connect 6 0 3 0; #X connect 7 0 6 1; #X connect 8 0 5 1; #X connect 10 0 9 0; #X restore 470 -10 pd translate_gem; #X obj 358 141 delay 100; #X obj 392 -63 inlet; #X msg 410 324 draw line; #X obj 410 298 initbang; #X obj 289 369 cube 0.5; #N canvas 91 114 986 439 rotateXYZ 0; #X obj 118 19 unpack 0 0 0; #X obj 158 196 atan2; #X obj 182 159 * -1; #X obj 159 221 rad2deg; #X obj 318 202 atan2; #X obj 319 227 rad2deg; #X obj 452 203 atan2; #X obj 453 228 rad2deg; #X obj 168 386 outlet X; #X obj 324 390 outlet Y; #X obj 117 -9 inlet; #X obj 474 172 * -1; #X obj 340 171 * 1; #X obj 80 183 inlet; #X obj 84 272 outlet; #X obj 82 219 rotateXYZ; #X connect 0 0 4 0; #X connect 0 0 6 0; #X connect 0 1 1 0; #X connect 0 1 11 0; #X connect 0 2 2 0; #X connect 0 2 12 0; #X connect 1 0 3 0; #X connect 2 0 1 1; #X connect 3 0 8 0; #X connect 3 0 15 1; #X connect 4 0 5 0; #X connect 5 0 9 0; #X connect 5 0 15 2; #X connect 6 0 7 0; #X connect 10 0 0 0; #X connect 11 0 6 1; #X connect 12 0 4 1; #X connect 13 0 15 0; #X connect 15 0 14 0; #X restore 290 327 pd rotateXYZ; #X obj 269 183 separator; #X obj 390 -15 route 2; #X connect 3 0 0 0; #X connect 3 1 1 0; #X connect 3 2 2 0; #X connect 7 0 4 0; #X connect 7 1 5 0; #X connect 7 2 6 0; #X connect 10 0 8 0; #X connect 10 1 9 0; #X connect 11 0 3 0; #X connect 11 0 19 0; #X connect 11 0 31 1; #X connect 11 1 15 0; #X connect 11 1 24 1; #X connect 11 2 7 0; #X connect 11 3 10 0; #X connect 15 0 12 0; #X connect 15 1 13 0; #X connect 15 2 14 0; #X connect 16 0 32 0; #X connect 17 0 21 0; #X connect 18 0 17 1; #X connect 19 0 20 0; #X connect 19 0 26 0; #X connect 20 0 17 1; #X connect 21 0 23 0; #X connect 22 0 33 0; #X connect 22 1 25 0; #X connect 23 0 24 0; #X connect 24 0 31 0; #X connect 24 1 21 2; #X connect 25 0 21 1; #X connect 26 0 18 0; #X connect 27 0 22 0; #X connect 28 0 30 0; #X connect 29 0 28 0; #X connect 31 0 30 0; #X connect 32 0 17 0; #X connect 33 0 11 0; #X coords 0 -1 1 1 60 210 1 100 100; #X restore 629 488 pd finger2; #N canvas 345 149 895 680 finger3 0; #X floatatom 124 116 5 0 0 0 x - -; #X floatatom 124 133 5 0 0 0 y - -; #X floatatom 124 150 5 0 0 0 z - -; #X obj 174 113 unpack 0 0 0; #X floatatom 124 222 5 0 0 0 x - -; #X floatatom 124 238 5 0 0 0 y - -; #X floatatom 124 255 5 0 0 0 z - -; #X obj 174 222 unpack 0 0 0; #X floatatom 124 275 5 0 0 0 wdt - -; #X floatatom 124 291 5 0 0 0 len - -; #X obj 173 276 unpack 0 0; #X obj 174 81 route direction position velocity size; #X floatatom 124 169 5 0 0 0 x - -; #X floatatom 124 185 5 0 0 0 y - -; #X floatatom 124 202 5 0 0 0 z - -; #X obj 174 169 unpack 0 0 0; #X obj 268 155 r gemlist; #X obj 290 208 spigot; #X msg 358 169 0; #X msg 331 114 bang; #X msg 331 145 1; #X obj 290 235 curve 2; #X obj 391 -37 route fingers palm_position; #X obj 289 298 separator; #N canvas 736 314 450 300 translate_gem 0; #X obj 82 69 unpack 0 0 0; #X obj 84 35 inlet; #X obj 30 207 translateXYZ; #X obj 28 153 inlet; #X obj 36 249 outlet; #X obj 65 124 / 40; #X obj 155 147 / 40; #X obj 115 126 / 40; #X obj 116 98 - 300; #X obj 166 101 - 100; #X obj 197 74 r setZ; #X obj 151 40 r setY; #X obj 132 207 outlet; #X obj 132 181 pack f f f; #X connect 0 0 5 0; #X connect 0 1 8 0; #X connect 0 2 9 0; #X connect 1 0 0 0; #X connect 2 0 4 0; #X connect 3 0 2 0; #X connect 5 0 2 1; #X connect 5 0 13 0; #X connect 6 0 2 3; #X connect 6 0 13 2; #X connect 7 0 2 2; #X connect 7 0 13 1; #X connect 8 0 7 0; #X connect 9 0 6 0; #X connect 10 0 9 1; #X connect 11 0 8 1; #X connect 13 0 12 0; #X restore 288 329 pd translate_gem; #N canvas 736 314 450 300 translate_gem 0; #X obj 82 69 unpack 0 0 0; #X obj 84 35 inlet; #X obj 65 124 / 40; #X obj 155 147 / 40; #X obj 115 126 / 40; #X obj 116 98 - 300; #X obj 166 101 - 100; #X obj 197 74 r setZ; #X obj 151 40 r setY; #X obj 132 207 outlet; #X obj 132 181 pack f f f; #X connect 0 0 2 0; #X connect 0 1 5 0; #X connect 0 2 6 0; #X connect 1 0 0 0; #X connect 2 0 10 0; #X connect 3 0 10 2; #X connect 4 0 10 1; #X connect 5 0 4 0; #X connect 6 0 3 0; #X connect 7 0 6 1; #X connect 8 0 5 1; #X connect 10 0 9 0; #X restore 470 -10 pd translate_gem; #X obj 358 141 delay 100; #X obj 392 -63 inlet; #X msg 410 354 draw line; #X obj 410 328 initbang; #X obj 289 399 cube 0.5; #N canvas 91 114 986 439 rotateXYZ 0; #X obj 118 19 unpack 0 0 0; #X obj 158 196 atan2; #X obj 182 159 * -1; #X obj 159 221 rad2deg; #X obj 318 202 atan2; #X obj 319 227 rad2deg; #X obj 452 203 atan2; #X obj 453 228 rad2deg; #X obj 168 386 outlet X; #X obj 324 390 outlet Y; #X obj 117 -9 inlet; #X obj 474 172 * -1; #X obj 340 171 * 1; #X obj 80 183 inlet; #X obj 84 272 outlet; #X obj 82 219 rotateXYZ; #X connect 0 0 4 0; #X connect 0 0 6 0; #X connect 0 1 1 0; #X connect 0 1 11 0; #X connect 0 2 2 0; #X connect 0 2 12 0; #X connect 1 0 3 0; #X connect 2 0 1 1; #X connect 3 0 8 0; #X connect 3 0 15 1; #X connect 4 0 5 0; #X connect 5 0 9 0; #X connect 5 0 15 2; #X connect 6 0 7 0; #X connect 10 0 0 0; #X connect 11 0 6 1; #X connect 12 0 4 1; #X connect 13 0 15 0; #X connect 15 0 14 0; #X restore 290 357 pd rotateXYZ; #X obj 269 183 separator; #X obj 390 -15 route 3; #X connect 3 0 0 0; #X connect 3 1 1 0; #X connect 3 2 2 0; #X connect 7 0 4 0; #X connect 7 1 5 0; #X connect 7 2 6 0; #X connect 10 0 8 0; #X connect 10 1 9 0; #X connect 11 0 3 0; #X connect 11 0 19 0; #X connect 11 0 31 1; #X connect 11 1 15 0; #X connect 11 1 24 1; #X connect 11 2 7 0; #X connect 11 3 10 0; #X connect 15 0 12 0; #X connect 15 1 13 0; #X connect 15 2 14 0; #X connect 16 0 32 0; #X connect 17 0 21 0; #X connect 18 0 17 1; #X connect 19 0 20 0; #X connect 19 0 26 0; #X connect 20 0 17 1; #X connect 21 0 23 0; #X connect 22 0 33 0; #X connect 22 1 25 0; #X connect 23 0 24 0; #X connect 24 0 31 0; #X connect 24 1 21 2; #X connect 25 0 21 1; #X connect 26 0 18 0; #X connect 27 0 22 0; #X connect 28 0 30 0; #X connect 29 0 28 0; #X connect 31 0 30 0; #X connect 32 0 17 0; #X connect 33 0 11 0; #X coords 0 -1 1 1 60 210 1 100 100; #X restore 705 487 pd finger3; #N canvas 345 149 895 680 finger4 0; #X floatatom 124 116 5 0 0 0 x - -; #X floatatom 124 133 5 0 0 0 y - -; #X floatatom 124 150 5 0 0 0 z - -; #X obj 174 113 unpack 0 0 0; #X floatatom 124 222 5 0 0 0 x - -; #X floatatom 124 238 5 0 0 0 y - -; #X floatatom 124 255 5 0 0 0 z - -; #X obj 174 222 unpack 0 0 0; #X floatatom 124 275 5 0 0 0 wdt - -; #X floatatom 124 291 5 0 0 0 len - -; #X obj 173 276 unpack 0 0; #X obj 174 81 route direction position velocity size; #X floatatom 124 169 5 0 0 0 x - -; #X floatatom 124 185 5 0 0 0 y - -; #X floatatom 124 202 5 0 0 0 z - -; #X obj 174 169 unpack 0 0 0; #X obj 268 155 r gemlist; #X obj 290 208 spigot; #X msg 358 169 0; #X msg 331 114 bang; #X msg 331 145 1; #X obj 290 235 curve 2; #X obj 391 -37 route fingers palm_position; #X obj 289 298 separator; #N canvas 736 314 450 300 translate_gem 0; #X obj 82 69 unpack 0 0 0; #X obj 84 35 inlet; #X obj 30 207 translateXYZ; #X obj 28 153 inlet; #X obj 36 249 outlet; #X obj 65 124 / 40; #X obj 155 147 / 40; #X obj 115 126 / 40; #X obj 116 98 - 300; #X obj 166 101 - 100; #X obj 197 74 r setZ; #X obj 151 40 r setY; #X obj 132 207 outlet; #X obj 132 181 pack f f f; #X connect 0 0 5 0; #X connect 0 1 8 0; #X connect 0 2 9 0; #X connect 1 0 0 0; #X connect 2 0 4 0; #X connect 3 0 2 0; #X connect 5 0 2 1; #X connect 5 0 13 0; #X connect 6 0 2 3; #X connect 6 0 13 2; #X connect 7 0 2 2; #X connect 7 0 13 1; #X connect 8 0 7 0; #X connect 9 0 6 0; #X connect 10 0 9 1; #X connect 11 0 8 1; #X connect 13 0 12 0; #X restore 288 329 pd translate_gem; #N canvas 736 314 450 300 translate_gem 0; #X obj 82 69 unpack 0 0 0; #X obj 84 35 inlet; #X obj 65 124 / 40; #X obj 155 147 / 40; #X obj 115 126 / 40; #X obj 116 98 - 300; #X obj 166 101 - 100; #X obj 197 74 r setZ; #X obj 151 40 r setY; #X obj 132 207 outlet; #X obj 132 181 pack f f f; #X connect 0 0 2 0; #X connect 0 1 5 0; #X connect 0 2 6 0; #X connect 1 0 0 0; #X connect 2 0 10 0; #X connect 3 0 10 2; #X connect 4 0 10 1; #X connect 5 0 4 0; #X connect 6 0 3 0; #X connect 7 0 6 1; #X connect 8 0 5 1; #X connect 10 0 9 0; #X restore 470 -10 pd translate_gem; #X obj 358 141 delay 100; #X obj 392 -63 inlet; #X msg 410 354 draw line; #X obj 410 328 initbang; #X obj 289 399 cube 0.5; #N canvas 91 114 986 439 rotateXYZ 0; #X obj 118 19 unpack 0 0 0; #X obj 158 196 atan2; #X obj 182 159 * -1; #X obj 159 221 rad2deg; #X obj 318 202 atan2; #X obj 319 227 rad2deg; #X obj 452 203 atan2; #X obj 453 228 rad2deg; #X obj 168 386 outlet X; #X obj 324 390 outlet Y; #X obj 117 -9 inlet; #X obj 474 172 * -1; #X obj 340 171 * 1; #X obj 80 183 inlet; #X obj 84 272 outlet; #X obj 82 219 rotateXYZ; #X connect 0 0 4 0; #X connect 0 0 6 0; #X connect 0 1 1 0; #X connect 0 1 11 0; #X connect 0 2 2 0; #X connect 0 2 12 0; #X connect 1 0 3 0; #X connect 2 0 1 1; #X connect 3 0 8 0; #X connect 3 0 15 1; #X connect 4 0 5 0; #X connect 5 0 9 0; #X connect 5 0 15 2; #X connect 6 0 7 0; #X connect 10 0 0 0; #X connect 11 0 6 1; #X connect 12 0 4 1; #X connect 13 0 15 0; #X connect 15 0 14 0; #X restore 290 357 pd rotateXYZ; #X obj 269 183 separator; #X obj 390 -15 route 4; #X connect 3 0 0 0; #X connect 3 1 1 0; #X connect 3 2 2 0; #X connect 7 0 4 0; #X connect 7 1 5 0; #X connect 7 2 6 0; #X connect 10 0 8 0; #X connect 10 1 9 0; #X connect 11 0 3 0; #X connect 11 0 19 0; #X connect 11 0 31 1; #X connect 11 1 15 0; #X connect 11 1 24 1; #X connect 11 2 7 0; #X connect 11 3 10 0; #X connect 15 0 12 0; #X connect 15 1 13 0; #X connect 15 2 14 0; #X connect 16 0 32 0; #X connect 17 0 21 0; #X connect 18 0 17 1; #X connect 19 0 20 0; #X connect 19 0 26 0; #X connect 20 0 17 1; #X connect 21 0 23 0; #X connect 22 0 33 0; #X connect 22 1 25 0; #X connect 23 0 24 0; #X connect 24 0 31 0; #X connect 24 1 21 2; #X connect 25 0 21 1; #X connect 26 0 18 0; #X connect 27 0 22 0; #X connect 28 0 30 0; #X connect 29 0 28 0; #X connect 31 0 30 0; #X connect 32 0 17 0; #X connect 33 0 11 0; #X coords 0 -1 1 1 60 210 1 100 100; #X restore 778 486 pd finger4; #X obj 105 41 inlet; #X obj 105 119 tgl 15 0 \$0-active \$1-active empty 17 7 0 10 -99865 -1 -1 1 1; #X obj 165 119 tgl 15 1 \$0-debug \$1-debug empty 17 7 0 10 -99865 -1 -1 1 1; #X text 183 118 debug; #X text 120 118 active; #N canvas 599 191 450 300 gesture 0; #X floatatom 148 160 8 0 0 0 dur: - -; #X floatatom 148 176 5 0 0 0 id: - -; #X obj 147 67 symbol; #X symbolatom 147 125 10 0 0 0 type: - -; #X obj 213 67 symbol; #X symbolatom 148 143 10 0 0 0 state: - -; #X obj 147 31 route type state duration id; #X obj 148 -23 r gesture; #X obj 148 5 route 0; #X connect 2 0 3 0; #X connect 4 0 5 0; #X connect 6 0 2 0; #X connect 6 1 4 0; #X connect 6 2 0 0; #X connect 6 3 1 0; #X connect 7 0 8 0; #X connect 8 0 6 0; #X coords 0 -1 1 1 120 100 1 100 100; #X restore 32 444 pd gesture; #N canvas 299 144 618 449 handle 0; #X obj 268 14 r hand; #X obj 268 37 route 0 1; #X obj 268 60 route palm_position; #N canvas 528 399 450 300 to_gem 0; #X obj 82 69 unpack 0 0 0; #X obj 84 35 inlet; #X obj 80 233 outlet; #X obj 65 124 / 40; #X obj 155 147 / 40; #X obj 115 126 / 40; #X obj 116 98 - 300; #X obj 187 64 r setZ; #X obj 141 30 r setY; #X obj 73 185 pack 0 0 0; #X obj 156 110 - 0; #X connect 0 0 3 0; #X connect 0 1 6 0; #X connect 0 2 10 0; #X connect 1 0 0 0; #X connect 3 0 9 0; #X connect 4 0 9 2; #X connect 5 0 9 1; #X connect 6 0 5 0; #X connect 7 0 10 1; #X connect 8 0 6 1; #X connect 9 0 2 0; #X connect 10 0 4 0; #X restore 268 82 pd to_gem; #N canvas 528 399 450 300 to_gem 0; #X obj 82 69 unpack 0 0 0; #X obj 84 35 inlet; #X obj 80 233 outlet; #X obj 65 124 / 40; #X obj 155 147 / 40; #X obj 115 126 / 40; #X obj 116 98 - 300; #X obj 187 64 r setZ; #X obj 141 30 r setY; #X obj 73 185 pack 0 0 0; #X obj 157 109 - 0; #X connect 0 0 3 0; #X connect 0 1 6 0; #X connect 0 2 10 0; #X connect 1 0 0 0; #X connect 3 0 9 0; #X connect 4 0 9 2; #X connect 5 0 9 1; #X connect 6 0 5 0; #X connect 7 0 10 1; #X connect 8 0 6 1; #X connect 9 0 2 0; #X connect 10 0 4 0; #X restore 396 80 pd to_gem; #N canvas 384 300 450 300 LEFT_RIGHT 0; #X obj 141 204 demux . .; #X msg 156 106 \$1; #X obj 195 166 > 0; #X obj 257 213 demux . .; #X msg 247 100 \$1; #X floatatom 247 122 0 0 0 0 - - -; #X obj 156 137 -; #X obj 128 44 inlet; #X obj 129 80 t a a; #X obj 218 44 inlet; #X obj 219 80 t a a; #X obj 139 246 outlet; #X obj 264 251 outlet; #X connect 0 0 11 0; #X connect 0 1 12 0; #X connect 1 0 6 0; #X connect 2 0 0 1; #X connect 2 0 3 1; #X connect 3 0 12 0; #X connect 3 1 11 0; #X connect 4 0 5 0; #X connect 5 0 6 1; #X connect 6 0 2 0; #X connect 7 0 8 0; #X connect 8 0 0 0; #X connect 8 1 1 0; #X connect 9 0 10 0; #X connect 10 0 3 0; #X connect 10 1 4 0; #X restore 269 109 pd LEFT_RIGHT; #N canvas 118 218 991 636 vec-minus 0; #X obj 45 401 outlet; #X obj 45 142 inlet; #X obj 45 175 unpack 0 0 0; #X obj 153 148 inlet; #X obj 183 215 unpack 0 0 0; #X obj 45 267 expr $f4 - $f1 \; $f5 - $f2 \; $f6 - $f3; #X obj 45 325 pack 0 0 0; #X text 105 401 difference vector; #X obj 153 175 t b a; #X connect 1 0 2 0; #X connect 2 0 5 0; #X connect 2 1 5 1; #X connect 2 2 5 2; #X connect 3 0 8 0; #X connect 4 0 5 3; #X connect 4 1 5 4; #X connect 4 2 5 5; #X connect 5 0 6 0; #X connect 5 1 6 1; #X connect 5 2 6 2; #X connect 6 0 0 0; #X connect 8 0 5 0; #X connect 8 1 4 0; #X restore 290 274 pd vec-minus; #N canvas 0 22 430 223 distance 0; #X obj 51 115 outlet; #X text 110 117 distance; #X obj 51 80 expr sqrt($f1*$f1 + $f2*$f2 + $f3*$f3); #X obj 51 34 inlet; #X connect 2 0 0 0; #X connect 3 0 2 0; #X restore 338 334 pd distance; #N canvas 511 187 655 437 calc-rotate 0; #X obj 40 217 outlet; #X obj 311 221 outlet; #X text 79 266 rotations; #X obj 40 70 inlet; #X text 330 131 f1: diff x; #X text 331 145 f2: diff y; #X text 331 160 f3: diff z; #X obj 263 70 inlet; #X text 45 238 Z; #X text 312 245 Y; #X floatatom 367 222 5 0 0 0 - - -; #X obj 40 139 expr 180/3.14159265 * atan2($f2 \, $f1) \; 180/3.14159265 * (acos($f3/$f4)-3.14159265/2) \;; #X connect 3 0 11 0; #X connect 7 0 11 3; #X connect 11 0 0 0; #X connect 11 1 1 0; #X connect 11 1 10 0; #X restore 276 386 pd calc-rotate; #X obj 290 301 t a a a; #X obj 354 458 outlet; #X text 264 175 first point; #X text 355 174 second point; #X text 370 434 rotationY; #X text 242 418 rotationZ; #X obj 273 456 outlet; #X obj 89 261 unpack 0 0 0; #X obj 189 264 unpack 0 0 0; #X obj 50 471 outlet; #X obj 50 415 pack f f f; #X obj 63 296 expr (($f1 + $f2) / 2); #X obj 112 323 expr (($f1 + $f2) / 2); #X obj 122 365 expr (($f1 + $f2) / 2); #X obj 265 202 any; #X obj 357 202 any; #X obj 396 60 route palm_position; #X text 33 448 center position of handle; #X connect 0 0 1 0; #X connect 1 0 2 0; #X connect 1 1 25 0; #X connect 2 0 3 0; #X connect 3 0 5 0; #X connect 4 0 5 1; #X connect 5 0 23 0; #X connect 5 1 24 0; #X connect 6 0 9 0; #X connect 7 0 8 1; #X connect 8 0 15 0; #X connect 8 1 10 0; #X connect 9 1 8 0; #X connect 9 2 7 0; #X connect 16 0 20 0; #X connect 16 1 21 0; #X connect 16 2 22 0; #X connect 17 0 20 1; #X connect 17 1 21 1; #X connect 17 2 22 1; #X connect 19 0 18 0; #X connect 20 0 19 0; #X connect 21 0 19 1; #X connect 22 0 19 2; #X connect 23 0 6 0; #X connect 23 0 16 0; #X connect 24 0 6 1; #X connect 24 0 17 0; #X connect 25 0 4 0; #X restore 214 608 pd handle; #N canvas 501 52 1178 604 hand1 0; #X obj 263 -102 unpack 0 0 0; #X floatatom 195 112 5 0 0 0 x - -; #X floatatom 195 129 5 0 0 0 y - -; #X floatatom 195 146 5 0 0 0 z - -; #X obj 264 -48 unpack 0 0 0; #X floatatom 195 167 5 0 0 0 x - -; #X floatatom 195 183 5 0 0 0 y - -; #X floatatom 195 200 5 0 0 0 z - -; #X floatatom 195 342 5 0 0 0 sphere_center - -; #X floatatom 195 361 5 0 0 0 fingers - -; #X floatatom 195 378 5 0 0 0 tools - -; #X floatatom 195 325 5 0 0 0 sphere_radius - -; #X obj 263 -146 route direction palm_position palm_velocity palm_normal sphere_radius sphere_center finger_count tool_count fingers; #X obj 263 7 unpack 0 0 0; #X floatatom 195 221 5 0 0 0 x - -; #X floatatom 195 237 5 0 0 0 y - -; #X floatatom 195 253 5 0 0 0 z - -; #X obj 263 60 unpack 0 0 0; #X floatatom 195 273 5 0 0 0 x - -; #X floatatom 195 289 5 0 0 0 y - -; #X floatatom 196 305 5 0 0 0 z - -; #X text 125 112 direction; #X text 102 223 palm velocity; #X text 116 273 palm normal; #X obj 263 -201 r hand; #X text 104 167 palm position; #X text 238 169 direction; #X text 239 225 position; #X text 238 276 velocity; #X text 237 331 size; #X obj 175 -11 outlet; #X obj 473 273 r hand; #X obj 473 300 route 0; #N canvas 147 150 718 512 rotate_fingers 0; #X obj -492 320 rotateXYZ; #N canvas 118 218 991 636 vec-minus 0; #X obj 45 401 outlet; #X obj 45 142 inlet; #X obj 45 175 unpack 0 0 0; #X obj 153 148 inlet; #X obj 183 215 unpack 0 0 0; #X obj 45 267 expr $f4 - $f1 \; $f5 - $f2 \; $f6 - $f3; #X obj 45 325 pack 0 0 0; #X text 105 401 difference vector; #X obj 153 175 t b a; #X connect 1 0 2 0; #X connect 2 0 5 0; #X connect 2 1 5 1; #X connect 2 2 5 2; #X connect 3 0 8 0; #X connect 4 0 5 3; #X connect 4 1 5 4; #X connect 4 2 5 5; #X connect 5 0 6 0; #X connect 5 1 6 1; #X connect 5 2 6 2; #X connect 6 0 0 0; #X connect 8 0 5 0; #X connect 8 1 4 0; #X restore -355 246 pd vec-minus; #N canvas 511 187 655 437 calc-rotate 0; #X obj 40 217 outlet; #X obj 311 221 outlet; #X text 79 266 rotations; #X obj 40 70 inlet; #X text 330 131 f1: diff x; #X text 331 145 f2: diff y; #X text 331 160 f3: diff z; #X obj 263 70 inlet; #X text 45 238 Z; #X text 312 245 Y; #X floatatom 367 222 5 0 0 0 - - -; #X obj 40 139 expr 180/3.14159265 * atan2($f2 \, $f1) \; 180/3.14159265 * (acos($f3/$f4)-3.14159265/2) \;; #X connect 3 0 11 0; #X connect 7 0 11 3; #X connect 11 0 0 0; #X connect 11 1 1 0; #X connect 11 1 10 0; #X restore -346 300 pd calc-rotate; #X obj -355 273 t a a a; #N canvas 699 402 450 300 togem 0; #X obj 82 69 unpack 0 0 0; #X obj 65 124 / 20; #X obj 155 147 / 20; #X obj 112 121 / 20; #X obj 116 98 - 200; #X obj 89 188 pack f f f; #X obj 84 35 inlet; #X obj 87 222 outlet; #X connect 0 0 1 0; #X connect 0 1 4 0; #X connect 0 2 2 0; #X connect 1 0 5 0; #X connect 2 0 5 2; #X connect 3 0 5 1; #X connect 4 0 3 0; #X connect 5 0 7 0; #X connect 6 0 0 0; #X restore -355 198 pd togem; #X obj -376 171 route position; #X obj -372 115 route fingers palm_position; #X obj -376 145 route 0; #X obj -279 181 route position; #X obj -279 155 route 4; #N canvas 699 402 450 300 togem 0; #X obj 82 69 unpack 0 0 0; #X obj 65 124 / 20; #X obj 155 147 / 20; #X obj 112 121 / 20; #X obj 116 98 - 200; #X obj 89 188 pack f f f; #X obj 84 35 inlet; #X obj 87 222 outlet; #X connect 0 0 1 0; #X connect 0 1 4 0; #X connect 0 2 2 0; #X connect 1 0 5 0; #X connect 2 0 5 2; #X connect 3 0 5 1; #X connect 4 0 3 0; #X connect 5 0 7 0; #X connect 6 0 0 0; #X restore -288 208 pd togem; #X obj -352 324 * -1; #X obj -370 53 inlet; #X obj -493 281 inlet; #X obj -494 345 outlet; #X text -357 83 hand input; #X connect 0 0 14 0; #X connect 1 0 3 0; #X connect 2 0 11 0; #X connect 3 1 2 0; #X connect 4 0 1 0; #X connect 5 0 4 0; #X connect 6 0 7 0; #X connect 6 0 9 0; #X connect 7 0 5 0; #X connect 8 0 10 0; #X connect 9 0 8 0; #X connect 10 0 1 1; #X connect 11 0 0 3; #X connect 12 0 6 0; #X connect 13 0 0 0; #X restore 386 322 pd rotate_fingers; #X obj 438 154 r hand; #N canvas 528 399 450 300 translate_gem 0; #X obj 82 69 unpack 0 0 0; #X obj 84 35 inlet; #X obj 30 207 translateXYZ; #X obj 28 153 inlet; #X obj 36 249 outlet; #X obj 65 124 / 40; #X obj 155 147 / 40; #X obj 115 126 / 40; #X obj 116 98 - 300; #X obj 156 109 - 100; #X obj 187 64 r setZ; #X obj 141 30 r setY; #X connect 0 0 5 0; #X connect 0 1 8 0; #X connect 0 2 9 0; #X connect 1 0 0 0; #X connect 2 0 4 0; #X connect 3 0 2 0; #X connect 5 0 2 1; #X connect 6 0 2 3; #X connect 7 0 2 2; #X connect 8 0 7 0; #X connect 9 0 6 0; #X connect 10 0 9 1; #X connect 11 0 8 1; #X restore 370 246 pd translate_gem; #N canvas 401 129 986 439 rotateXYZ 0; #X obj 118 19 unpack 0 0 0; #X obj 158 196 atan2; #X obj 182 159 * -1; #X obj 159 221 rad2deg; #X obj 318 202 atan2; #X obj 319 227 rad2deg; #X obj 168 386 outlet X; #X obj 324 390 outlet Y; #X obj 117 -9 inlet; #X obj 340 171 * 1; #X obj 80 183 inlet; #X obj 84 272 outlet; #X obj 82 219 rotateXYZ; #X obj 410 140 atan2; #X obj 411 165 rad2deg; #X obj 432 109 * -1; #X obj 409 36 unpack 0 0 0; #X obj 408 8 inlet; #X floatatom 411 195 5 0 0 0 - - -; #X text 579 12 Pitch: Math.atan2( y \, -z ) \; Yaw: Math.atan2( x \, -z ) \; Roll: Math.atan2( x \, -y ) \;; #X connect 0 0 4 0; #X connect 0 1 1 0; #X connect 0 2 2 0; #X connect 0 2 9 0; #X connect 1 0 3 0; #X connect 2 0 1 1; #X connect 3 0 6 0; #X connect 3 0 12 1; #X connect 4 0 5 0; #X connect 5 0 7 0; #X connect 5 0 12 2; #X connect 8 0 0 0; #X connect 9 0 4 1; #X connect 10 0 12 0; #X connect 12 0 11 0; #X connect 13 0 14 0; #X connect 14 0 18 0; #X connect 15 0 13 1; #X connect 16 0 13 0; #X connect 16 1 15 0; #X connect 17 0 16 0; #X restore 370 283 pd rotateXYZ; #X obj 370 167 r gemlist; #X obj 369 225 separator; #X msg 487 366 draw line; #X obj 487 344 initbang; #X obj 368 384 cube; #X obj 368 352 scaleXYZ 1 0.5 1; #X obj 439 209 route direction palm_position palm_velocity palm_normal ; #X obj 263 -174 route 1; #X obj 439 181 route 1; #X text 380 149 draw; #N canvas 362 202 450 300 display 0; #X obj 94 165 spigot; #X msg 163 126 0; #X msg 136 71 bang; #X msg 136 102 1; #X obj 163 98 delay 100; #X obj 95 89 inlet; #X obj 94 202 outlet; #X obj 139 31 inlet; #X connect 0 0 6 0; #X connect 1 0 0 1; #X connect 2 0 3 0; #X connect 2 0 4 0; #X connect 3 0 0 1; #X connect 4 0 1 0; #X connect 5 0 0 0; #X connect 7 0 2 0; #X restore 369 195 pd display; #X connect 0 0 1 0; #X connect 0 1 2 0; #X connect 0 2 3 0; #X connect 4 0 5 0; #X connect 4 1 6 0; #X connect 4 2 7 0; #X connect 12 0 0 0; #X connect 12 1 4 0; #X connect 12 2 13 0; #X connect 12 3 17 0; #X connect 12 4 11 0; #X connect 12 5 8 0; #X connect 12 6 9 0; #X connect 12 7 10 0; #X connect 13 0 14 0; #X connect 13 1 15 0; #X connect 13 2 16 0; #X connect 17 0 18 0; #X connect 17 1 19 0; #X connect 17 2 20 0; #X connect 24 0 44 0; #X connect 31 0 32 0; #X connect 32 0 33 1; #X connect 33 0 42 0; #X connect 34 0 45 0; #X connect 35 0 36 0; #X connect 36 0 42 0; #X connect 37 0 47 0; #X connect 38 0 35 0; #X connect 39 0 41 0; #X connect 40 0 39 0; #X connect 42 0 41 0; #X connect 43 0 36 1; #X connect 43 1 35 1; #X connect 43 3 36 2; #X connect 44 0 12 0; #X connect 44 0 30 0; #X connect 45 0 43 0; #X connect 45 0 47 1; #X connect 47 0 38 0; #X coords 0 -1 1 1 200 300 1 100 100; #X restore 849 169 pd hand1; #N canvas 345 149 895 680 finger0 0; #X floatatom 124 116 5 0 0 0 x - -; #X floatatom 124 133 5 0 0 0 y - -; #X floatatom 124 150 5 0 0 0 z - -; #X obj 174 113 unpack 0 0 0; #X floatatom 124 222 5 0 0 0 x - -; #X floatatom 124 238 5 0 0 0 y - -; #X floatatom 124 255 5 0 0 0 z - -; #X obj 174 222 unpack 0 0 0; #X floatatom 124 275 5 0 0 0 wdt - -; #X floatatom 124 291 5 0 0 0 len - -; #X obj 173 276 unpack 0 0; #X obj 174 81 route direction position velocity size; #X floatatom 124 169 5 0 0 0 x - -; #X floatatom 124 185 5 0 0 0 y - -; #X floatatom 124 202 5 0 0 0 z - -; #X obj 174 169 unpack 0 0 0; #X obj 268 155 r gemlist; #X obj 290 208 spigot; #X msg 358 169 0; #X msg 331 114 bang; #X msg 331 145 1; #X obj 290 235 curve 2; #X obj 391 -37 route fingers palm_position; #X obj 289 268 separator; #N canvas 736 314 450 300 translate_gem 0; #X obj 82 69 unpack 0 0 0; #X obj 84 35 inlet; #X obj 30 207 translateXYZ; #X obj 28 153 inlet; #X obj 36 249 outlet; #X obj 65 124 / 40; #X obj 155 147 / 40; #X obj 115 126 / 40; #X obj 116 98 - 300; #X obj 166 101 - 100; #X obj 197 74 r setZ; #X obj 151 40 r setY; #X obj 132 207 outlet; #X obj 132 181 pack f f f; #X connect 0 0 5 0; #X connect 0 1 8 0; #X connect 0 2 9 0; #X connect 1 0 0 0; #X connect 2 0 4 0; #X connect 3 0 2 0; #X connect 5 0 2 1; #X connect 5 0 13 0; #X connect 6 0 2 3; #X connect 6 0 13 2; #X connect 7 0 2 2; #X connect 7 0 13 1; #X connect 8 0 7 0; #X connect 9 0 6 0; #X connect 10 0 9 1; #X connect 11 0 8 1; #X connect 13 0 12 0; #X restore 288 299 pd translate_gem; #N canvas 736 314 450 300 translate_gem 0; #X obj 82 69 unpack 0 0 0; #X obj 84 35 inlet; #X obj 65 124 / 40; #X obj 155 147 / 40; #X obj 115 126 / 40; #X obj 116 98 - 300; #X obj 166 101 - 100; #X obj 197 74 r setZ; #X obj 151 40 r setY; #X obj 132 207 outlet; #X obj 132 181 pack f f f; #X connect 0 0 2 0; #X connect 0 1 5 0; #X connect 0 2 6 0; #X connect 1 0 0 0; #X connect 2 0 10 0; #X connect 3 0 10 2; #X connect 4 0 10 1; #X connect 5 0 4 0; #X connect 6 0 3 0; #X connect 7 0 6 1; #X connect 8 0 5 1; #X connect 10 0 9 0; #X restore 470 -10 pd translate_gem; #X obj 358 141 delay 100; #X obj 390 -15 route 0; #X obj 392 -63 inlet; #X msg 410 324 draw line; #X obj 410 298 initbang; #X obj 289 369 cube 0.5; #N canvas 91 114 986 439 rotateXYZ 0; #X obj 118 19 unpack 0 0 0; #X obj 158 196 atan2; #X obj 182 159 * -1; #X obj 159 221 rad2deg; #X obj 318 202 atan2; #X obj 319 227 rad2deg; #X obj 452 203 atan2; #X obj 453 228 rad2deg; #X obj 168 386 outlet X; #X obj 324 390 outlet Y; #X obj 117 -9 inlet; #X obj 474 172 * -1; #X obj 340 171 * 1; #X obj 80 183 inlet; #X obj 84 272 outlet; #X obj 82 219 rotateXYZ; #X connect 0 0 4 0; #X connect 0 0 6 0; #X connect 0 1 1 0; #X connect 0 1 11 0; #X connect 0 2 2 0; #X connect 0 2 12 0; #X connect 1 0 3 0; #X connect 2 0 1 1; #X connect 3 0 8 0; #X connect 3 0 15 1; #X connect 4 0 5 0; #X connect 5 0 9 0; #X connect 5 0 15 2; #X connect 6 0 7 0; #X connect 10 0 0 0; #X connect 11 0 6 1; #X connect 12 0 4 1; #X connect 13 0 15 0; #X connect 15 0 14 0; #X restore 290 327 pd rotateXYZ; #X obj 269 183 separator; #X connect 3 0 0 0; #X connect 3 1 1 0; #X connect 3 2 2 0; #X connect 7 0 4 0; #X connect 7 1 5 0; #X connect 7 2 6 0; #X connect 10 0 8 0; #X connect 10 1 9 0; #X connect 11 0 3 0; #X connect 11 0 19 0; #X connect 11 0 32 1; #X connect 11 1 15 0; #X connect 11 1 24 1; #X connect 11 2 7 0; #X connect 11 3 10 0; #X connect 15 0 12 0; #X connect 15 1 13 0; #X connect 15 2 14 0; #X connect 16 0 33 0; #X connect 17 0 21 0; #X connect 18 0 17 1; #X connect 19 0 20 0; #X connect 19 0 26 0; #X connect 20 0 17 1; #X connect 21 0 23 0; #X connect 22 0 27 0; #X connect 22 1 25 0; #X connect 23 0 24 0; #X connect 24 0 32 0; #X connect 24 1 21 2; #X connect 25 0 21 1; #X connect 26 0 18 0; #X connect 27 0 11 0; #X connect 28 0 22 0; #X connect 29 0 31 0; #X connect 30 0 29 0; #X connect 32 0 31 0; #X connect 33 0 17 0; #X coords 0 -1 1 1 60 210 1 100 100; #X restore 849 482 pd finger0; #N canvas 345 149 895 680 finger1 0; #X floatatom 124 116 5 0 0 0 x - -; #X floatatom 124 133 5 0 0 0 y - -; #X floatatom 124 150 5 0 0 0 z - -; #X obj 174 113 unpack 0 0 0; #X floatatom 124 222 5 0 0 0 x - -; #X floatatom 124 238 5 0 0 0 y - -; #X floatatom 124 255 5 0 0 0 z - -; #X obj 174 222 unpack 0 0 0; #X floatatom 124 275 5 0 0 0 wdt - -; #X floatatom 124 291 5 0 0 0 len - -; #X obj 173 276 unpack 0 0; #X obj 174 81 route direction position velocity size; #X floatatom 124 169 5 0 0 0 x - -; #X floatatom 124 185 5 0 0 0 y - -; #X floatatom 124 202 5 0 0 0 z - -; #X obj 174 169 unpack 0 0 0; #X obj 268 155 r gemlist; #X obj 290 208 spigot; #X msg 358 169 0; #X msg 331 114 bang; #X msg 331 145 1; #X obj 290 235 curve 2; #X obj 391 -37 route fingers palm_position; #X obj 289 298 separator; #N canvas 736 314 450 300 translate_gem 0; #X obj 82 69 unpack 0 0 0; #X obj 84 35 inlet; #X obj 30 207 translateXYZ; #X obj 28 153 inlet; #X obj 36 249 outlet; #X obj 65 124 / 40; #X obj 155 147 / 40; #X obj 115 126 / 40; #X obj 116 98 - 300; #X obj 166 101 - 100; #X obj 197 74 r setZ; #X obj 151 40 r setY; #X obj 132 207 outlet; #X obj 132 181 pack f f f; #X connect 0 0 5 0; #X connect 0 1 8 0; #X connect 0 2 9 0; #X connect 1 0 0 0; #X connect 2 0 4 0; #X connect 3 0 2 0; #X connect 5 0 2 1; #X connect 5 0 13 0; #X connect 6 0 2 3; #X connect 6 0 13 2; #X connect 7 0 2 2; #X connect 7 0 13 1; #X connect 8 0 7 0; #X connect 9 0 6 0; #X connect 10 0 9 1; #X connect 11 0 8 1; #X connect 13 0 12 0; #X restore 288 329 pd translate_gem; #N canvas 736 314 450 300 translate_gem 0; #X obj 82 69 unpack 0 0 0; #X obj 84 35 inlet; #X obj 65 124 / 40; #X obj 155 147 / 40; #X obj 115 126 / 40; #X obj 116 98 - 300; #X obj 166 101 - 100; #X obj 197 74 r setZ; #X obj 151 40 r setY; #X obj 132 207 outlet; #X obj 132 181 pack f f f; #X connect 0 0 2 0; #X connect 0 1 5 0; #X connect 0 2 6 0; #X connect 1 0 0 0; #X connect 2 0 10 0; #X connect 3 0 10 2; #X connect 4 0 10 1; #X connect 5 0 4 0; #X connect 6 0 3 0; #X connect 7 0 6 1; #X connect 8 0 5 1; #X connect 10 0 9 0; #X restore 470 -10 pd translate_gem; #X obj 358 141 delay 100; #X obj 392 -63 inlet; #X msg 410 354 draw line; #X obj 410 328 initbang; #X obj 289 399 cube 0.5; #N canvas 91 114 986 439 rotateXYZ 0; #X obj 118 19 unpack 0 0 0; #X obj 158 196 atan2; #X obj 182 159 * -1; #X obj 159 221 rad2deg; #X obj 318 202 atan2; #X obj 319 227 rad2deg; #X obj 452 203 atan2; #X obj 453 228 rad2deg; #X obj 168 386 outlet X; #X obj 324 390 outlet Y; #X obj 117 -9 inlet; #X obj 474 172 * -1; #X obj 340 171 * 1; #X obj 80 183 inlet; #X obj 84 272 outlet; #X obj 82 219 rotateXYZ; #X connect 0 0 4 0; #X connect 0 0 6 0; #X connect 0 1 1 0; #X connect 0 1 11 0; #X connect 0 2 2 0; #X connect 0 2 12 0; #X connect 1 0 3 0; #X connect 2 0 1 1; #X connect 3 0 8 0; #X connect 3 0 15 1; #X connect 4 0 5 0; #X connect 5 0 9 0; #X connect 5 0 15 2; #X connect 6 0 7 0; #X connect 10 0 0 0; #X connect 11 0 6 1; #X connect 12 0 4 1; #X connect 13 0 15 0; #X connect 15 0 14 0; #X restore 290 357 pd rotateXYZ; #X obj 269 183 separator; #X obj 390 -15 route 1; #X connect 3 0 0 0; #X connect 3 1 1 0; #X connect 3 2 2 0; #X connect 7 0 4 0; #X connect 7 1 5 0; #X connect 7 2 6 0; #X connect 10 0 8 0; #X connect 10 1 9 0; #X connect 11 0 3 0; #X connect 11 0 19 0; #X connect 11 0 31 1; #X connect 11 1 15 0; #X connect 11 1 24 1; #X connect 11 2 7 0; #X connect 11 3 10 0; #X connect 15 0 12 0; #X connect 15 1 13 0; #X connect 15 2 14 0; #X connect 16 0 32 0; #X connect 17 0 21 0; #X connect 18 0 17 1; #X connect 19 0 20 0; #X connect 19 0 26 0; #X connect 20 0 17 1; #X connect 21 0 23 0; #X connect 22 0 33 0; #X connect 22 1 25 0; #X connect 23 0 24 0; #X connect 24 0 31 0; #X connect 24 1 21 2; #X connect 25 0 21 1; #X connect 26 0 18 0; #X connect 27 0 22 0; #X connect 28 0 30 0; #X connect 29 0 28 0; #X connect 31 0 30 0; #X connect 32 0 17 0; #X connect 33 0 11 0; #X coords 0 -1 1 1 60 210 1 100 100; #X restore 923 482 pd finger1; #N canvas 345 149 895 680 finger2 0; #X floatatom 124 116 5 0 0 0 x - -; #X floatatom 124 133 5 0 0 0 y - -; #X floatatom 124 150 5 0 0 0 z - -; #X obj 174 113 unpack 0 0 0; #X floatatom 124 222 5 0 0 0 x - -; #X floatatom 124 238 5 0 0 0 y - -; #X floatatom 124 255 5 0 0 0 z - -; #X obj 174 222 unpack 0 0 0; #X floatatom 124 275 5 0 0 0 wdt - -; #X floatatom 124 291 5 0 0 0 len - -; #X obj 173 276 unpack 0 0; #X obj 174 81 route direction position velocity size; #X floatatom 124 169 5 0 0 0 x - -; #X floatatom 124 185 5 0 0 0 y - -; #X floatatom 124 202 5 0 0 0 z - -; #X obj 174 169 unpack 0 0 0; #X obj 268 155 r gemlist; #X obj 290 208 spigot; #X msg 358 169 0; #X msg 331 114 bang; #X msg 331 145 1; #X obj 290 235 curve 2; #X obj 391 -37 route fingers palm_position; #X obj 289 268 separator; #N canvas 736 314 450 300 translate_gem 0; #X obj 82 69 unpack 0 0 0; #X obj 84 35 inlet; #X obj 30 207 translateXYZ; #X obj 28 153 inlet; #X obj 36 249 outlet; #X obj 65 124 / 40; #X obj 155 147 / 40; #X obj 115 126 / 40; #X obj 116 98 - 300; #X obj 166 101 - 100; #X obj 197 74 r setZ; #X obj 151 40 r setY; #X obj 132 207 outlet; #X obj 132 181 pack f f f; #X connect 0 0 5 0; #X connect 0 1 8 0; #X connect 0 2 9 0; #X connect 1 0 0 0; #X connect 2 0 4 0; #X connect 3 0 2 0; #X connect 5 0 2 1; #X connect 5 0 13 0; #X connect 6 0 2 3; #X connect 6 0 13 2; #X connect 7 0 2 2; #X connect 7 0 13 1; #X connect 8 0 7 0; #X connect 9 0 6 0; #X connect 10 0 9 1; #X connect 11 0 8 1; #X connect 13 0 12 0; #X restore 288 299 pd translate_gem; #N canvas 736 314 450 300 translate_gem 0; #X obj 82 69 unpack 0 0 0; #X obj 84 35 inlet; #X obj 65 124 / 40; #X obj 155 147 / 40; #X obj 115 126 / 40; #X obj 116 98 - 300; #X obj 166 101 - 100; #X obj 197 74 r setZ; #X obj 151 40 r setY; #X obj 132 207 outlet; #X obj 132 181 pack f f f; #X connect 0 0 2 0; #X connect 0 1 5 0; #X connect 0 2 6 0; #X connect 1 0 0 0; #X connect 2 0 10 0; #X connect 3 0 10 2; #X connect 4 0 10 1; #X connect 5 0 4 0; #X connect 6 0 3 0; #X connect 7 0 6 1; #X connect 8 0 5 1; #X connect 10 0 9 0; #X restore 470 -10 pd translate_gem; #X obj 358 141 delay 100; #X obj 392 -63 inlet; #X msg 410 324 draw line; #X obj 410 298 initbang; #X obj 289 369 cube 0.5; #N canvas 91 114 986 439 rotateXYZ 0; #X obj 118 19 unpack 0 0 0; #X obj 158 196 atan2; #X obj 182 159 * -1; #X obj 159 221 rad2deg; #X obj 318 202 atan2; #X obj 319 227 rad2deg; #X obj 452 203 atan2; #X obj 453 228 rad2deg; #X obj 168 386 outlet X; #X obj 324 390 outlet Y; #X obj 117 -9 inlet; #X obj 474 172 * -1; #X obj 340 171 * 1; #X obj 80 183 inlet; #X obj 84 272 outlet; #X obj 82 219 rotateXYZ; #X connect 0 0 4 0; #X connect 0 0 6 0; #X connect 0 1 1 0; #X connect 0 1 11 0; #X connect 0 2 2 0; #X connect 0 2 12 0; #X connect 1 0 3 0; #X connect 2 0 1 1; #X connect 3 0 8 0; #X connect 3 0 15 1; #X connect 4 0 5 0; #X connect 5 0 9 0; #X connect 5 0 15 2; #X connect 6 0 7 0; #X connect 10 0 0 0; #X connect 11 0 6 1; #X connect 12 0 4 1; #X connect 13 0 15 0; #X connect 15 0 14 0; #X restore 290 327 pd rotateXYZ; #X obj 269 183 separator; #X obj 390 -15 route 2; #X connect 3 0 0 0; #X connect 3 1 1 0; #X connect 3 2 2 0; #X connect 7 0 4 0; #X connect 7 1 5 0; #X connect 7 2 6 0; #X connect 10 0 8 0; #X connect 10 1 9 0; #X connect 11 0 3 0; #X connect 11 0 19 0; #X connect 11 0 31 1; #X connect 11 1 15 0; #X connect 11 1 24 1; #X connect 11 2 7 0; #X connect 11 3 10 0; #X connect 15 0 12 0; #X connect 15 1 13 0; #X connect 15 2 14 0; #X connect 16 0 32 0; #X connect 17 0 21 0; #X connect 18 0 17 1; #X connect 19 0 20 0; #X connect 19 0 26 0; #X connect 20 0 17 1; #X connect 21 0 23 0; #X connect 22 0 33 0; #X connect 22 1 25 0; #X connect 23 0 24 0; #X connect 24 0 31 0; #X connect 24 1 21 2; #X connect 25 0 21 1; #X connect 26 0 18 0; #X connect 27 0 22 0; #X connect 28 0 30 0; #X connect 29 0 28 0; #X connect 31 0 30 0; #X connect 32 0 17 0; #X connect 33 0 11 0; #X coords 0 -1 1 1 60 210 1 100 100; #X restore 997 483 pd finger2; #N canvas 345 149 895 680 finger3 0; #X floatatom 124 116 5 0 0 0 x - -; #X floatatom 124 133 5 0 0 0 y - -; #X floatatom 124 150 5 0 0 0 z - -; #X obj 174 113 unpack 0 0 0; #X floatatom 124 222 5 0 0 0 x - -; #X floatatom 124 238 5 0 0 0 y - -; #X floatatom 124 255 5 0 0 0 z - -; #X obj 174 222 unpack 0 0 0; #X floatatom 124 275 5 0 0 0 wdt - -; #X floatatom 124 291 5 0 0 0 len - -; #X obj 173 276 unpack 0 0; #X obj 174 81 route direction position velocity size; #X floatatom 124 169 5 0 0 0 x - -; #X floatatom 124 185 5 0 0 0 y - -; #X floatatom 124 202 5 0 0 0 z - -; #X obj 174 169 unpack 0 0 0; #X obj 268 155 r gemlist; #X obj 290 208 spigot; #X msg 358 169 0; #X msg 331 114 bang; #X msg 331 145 1; #X obj 290 235 curve 2; #X obj 391 -37 route fingers palm_position; #X obj 289 298 separator; #N canvas 736 314 450 300 translate_gem 0; #X obj 82 69 unpack 0 0 0; #X obj 84 35 inlet; #X obj 30 207 translateXYZ; #X obj 28 153 inlet; #X obj 36 249 outlet; #X obj 65 124 / 40; #X obj 155 147 / 40; #X obj 115 126 / 40; #X obj 116 98 - 300; #X obj 166 101 - 100; #X obj 197 74 r setZ; #X obj 151 40 r setY; #X obj 132 207 outlet; #X obj 132 181 pack f f f; #X connect 0 0 5 0; #X connect 0 1 8 0; #X connect 0 2 9 0; #X connect 1 0 0 0; #X connect 2 0 4 0; #X connect 3 0 2 0; #X connect 5 0 2 1; #X connect 5 0 13 0; #X connect 6 0 2 3; #X connect 6 0 13 2; #X connect 7 0 2 2; #X connect 7 0 13 1; #X connect 8 0 7 0; #X connect 9 0 6 0; #X connect 10 0 9 1; #X connect 11 0 8 1; #X connect 13 0 12 0; #X restore 288 329 pd translate_gem; #N canvas 736 314 450 300 translate_gem 0; #X obj 82 69 unpack 0 0 0; #X obj 84 35 inlet; #X obj 65 124 / 40; #X obj 155 147 / 40; #X obj 115 126 / 40; #X obj 116 98 - 300; #X obj 166 101 - 100; #X obj 197 74 r setZ; #X obj 151 40 r setY; #X obj 132 207 outlet; #X obj 132 181 pack f f f; #X connect 0 0 2 0; #X connect 0 1 5 0; #X connect 0 2 6 0; #X connect 1 0 0 0; #X connect 2 0 10 0; #X connect 3 0 10 2; #X connect 4 0 10 1; #X connect 5 0 4 0; #X connect 6 0 3 0; #X connect 7 0 6 1; #X connect 8 0 5 1; #X connect 10 0 9 0; #X restore 470 -10 pd translate_gem; #X obj 358 141 delay 100; #X obj 392 -63 inlet; #X msg 410 354 draw line; #X obj 410 328 initbang; #X obj 289 399 cube 0.5; #N canvas 91 114 986 439 rotateXYZ 0; #X obj 118 19 unpack 0 0 0; #X obj 158 196 atan2; #X obj 182 159 * -1; #X obj 159 221 rad2deg; #X obj 318 202 atan2; #X obj 319 227 rad2deg; #X obj 452 203 atan2; #X obj 453 228 rad2deg; #X obj 168 386 outlet X; #X obj 324 390 outlet Y; #X obj 117 -9 inlet; #X obj 474 172 * -1; #X obj 340 171 * 1; #X obj 80 183 inlet; #X obj 84 272 outlet; #X obj 82 219 rotateXYZ; #X connect 0 0 4 0; #X connect 0 0 6 0; #X connect 0 1 1 0; #X connect 0 1 11 0; #X connect 0 2 2 0; #X connect 0 2 12 0; #X connect 1 0 3 0; #X connect 2 0 1 1; #X connect 3 0 8 0; #X connect 3 0 15 1; #X connect 4 0 5 0; #X connect 5 0 9 0; #X connect 5 0 15 2; #X connect 6 0 7 0; #X connect 10 0 0 0; #X connect 11 0 6 1; #X connect 12 0 4 1; #X connect 13 0 15 0; #X connect 15 0 14 0; #X restore 290 357 pd rotateXYZ; #X obj 269 183 separator; #X obj 390 -15 route 3; #X connect 3 0 0 0; #X connect 3 1 1 0; #X connect 3 2 2 0; #X connect 7 0 4 0; #X connect 7 1 5 0; #X connect 7 2 6 0; #X connect 10 0 8 0; #X connect 10 1 9 0; #X connect 11 0 3 0; #X connect 11 0 19 0; #X connect 11 0 31 1; #X connect 11 1 15 0; #X connect 11 1 24 1; #X connect 11 2 7 0; #X connect 11 3 10 0; #X connect 15 0 12 0; #X connect 15 1 13 0; #X connect 15 2 14 0; #X connect 16 0 32 0; #X connect 17 0 21 0; #X connect 18 0 17 1; #X connect 19 0 20 0; #X connect 19 0 26 0; #X connect 20 0 17 1; #X connect 21 0 23 0; #X connect 22 0 33 0; #X connect 22 1 25 0; #X connect 23 0 24 0; #X connect 24 0 31 0; #X connect 24 1 21 2; #X connect 25 0 21 1; #X connect 26 0 18 0; #X connect 27 0 22 0; #X connect 28 0 30 0; #X connect 29 0 28 0; #X connect 31 0 30 0; #X connect 32 0 17 0; #X connect 33 0 11 0; #X coords 0 -1 1 1 60 210 1 100 100; #X restore 1073 482 pd finger3; #N canvas 345 149 895 680 finger4 0; #X floatatom 124 116 5 0 0 0 x - -; #X floatatom 124 133 5 0 0 0 y - -; #X floatatom 124 150 5 0 0 0 z - -; #X obj 174 113 unpack 0 0 0; #X floatatom 124 222 5 0 0 0 x - -; #X floatatom 124 238 5 0 0 0 y - -; #X floatatom 124 255 5 0 0 0 z - -; #X obj 174 222 unpack 0 0 0; #X floatatom 124 275 5 0 0 0 wdt - -; #X floatatom 124 291 5 0 0 0 len - -; #X obj 173 276 unpack 0 0; #X obj 174 81 route direction position velocity size; #X floatatom 124 169 5 0 0 0 x - -; #X floatatom 124 185 5 0 0 0 y - -; #X floatatom 124 202 5 0 0 0 z - -; #X obj 174 169 unpack 0 0 0; #X obj 268 155 r gemlist; #X obj 290 208 spigot; #X msg 358 169 0; #X msg 331 114 bang; #X msg 331 145 1; #X obj 290 235 curve 2; #X obj 391 -37 route fingers palm_position; #X obj 289 298 separator; #N canvas 736 314 450 300 translate_gem 0; #X obj 82 69 unpack 0 0 0; #X obj 84 35 inlet; #X obj 30 207 translateXYZ; #X obj 28 153 inlet; #X obj 36 249 outlet; #X obj 65 124 / 40; #X obj 155 147 / 40; #X obj 115 126 / 40; #X obj 116 98 - 300; #X obj 166 101 - 100; #X obj 197 74 r setZ; #X obj 151 40 r setY; #X obj 132 207 outlet; #X obj 132 181 pack f f f; #X connect 0 0 5 0; #X connect 0 1 8 0; #X connect 0 2 9 0; #X connect 1 0 0 0; #X connect 2 0 4 0; #X connect 3 0 2 0; #X connect 5 0 2 1; #X connect 5 0 13 0; #X connect 6 0 2 3; #X connect 6 0 13 2; #X connect 7 0 2 2; #X connect 7 0 13 1; #X connect 8 0 7 0; #X connect 9 0 6 0; #X connect 10 0 9 1; #X connect 11 0 8 1; #X connect 13 0 12 0; #X restore 288 329 pd translate_gem; #N canvas 736 314 450 300 translate_gem 0; #X obj 82 69 unpack 0 0 0; #X obj 84 35 inlet; #X obj 65 124 / 40; #X obj 155 147 / 40; #X obj 115 126 / 40; #X obj 116 98 - 300; #X obj 166 101 - 100; #X obj 197 74 r setZ; #X obj 151 40 r setY; #X obj 132 207 outlet; #X obj 132 181 pack f f f; #X connect 0 0 2 0; #X connect 0 1 5 0; #X connect 0 2 6 0; #X connect 1 0 0 0; #X connect 2 0 10 0; #X connect 3 0 10 2; #X connect 4 0 10 1; #X connect 5 0 4 0; #X connect 6 0 3 0; #X connect 7 0 6 1; #X connect 8 0 5 1; #X connect 10 0 9 0; #X restore 470 -10 pd translate_gem; #X obj 358 141 delay 100; #X obj 392 -63 inlet; #X msg 410 354 draw line; #X obj 410 328 initbang; #X obj 289 399 cube 0.5; #N canvas 91 114 986 439 rotateXYZ 0; #X obj 118 19 unpack 0 0 0; #X obj 158 196 atan2; #X obj 182 159 * -1; #X obj 159 221 rad2deg; #X obj 318 202 atan2; #X obj 319 227 rad2deg; #X obj 452 203 atan2; #X obj 453 228 rad2deg; #X obj 168 386 outlet X; #X obj 324 390 outlet Y; #X obj 117 -9 inlet; #X obj 474 172 * -1; #X obj 340 171 * 1; #X obj 80 183 inlet; #X obj 84 272 outlet; #X obj 82 219 rotateXYZ; #X connect 0 0 4 0; #X connect 0 0 6 0; #X connect 0 1 1 0; #X connect 0 1 11 0; #X connect 0 2 2 0; #X connect 0 2 12 0; #X connect 1 0 3 0; #X connect 2 0 1 1; #X connect 3 0 8 0; #X connect 3 0 15 1; #X connect 4 0 5 0; #X connect 5 0 9 0; #X connect 5 0 15 2; #X connect 6 0 7 0; #X connect 10 0 0 0; #X connect 11 0 6 1; #X connect 12 0 4 1; #X connect 13 0 15 0; #X connect 15 0 14 0; #X restore 290 357 pd rotateXYZ; #X obj 269 183 separator; #X obj 390 -15 route 4; #X connect 3 0 0 0; #X connect 3 1 1 0; #X connect 3 2 2 0; #X connect 7 0 4 0; #X connect 7 1 5 0; #X connect 7 2 6 0; #X connect 10 0 8 0; #X connect 10 1 9 0; #X connect 11 0 3 0; #X connect 11 0 19 0; #X connect 11 0 31 1; #X connect 11 1 15 0; #X connect 11 1 24 1; #X connect 11 2 7 0; #X connect 11 3 10 0; #X connect 15 0 12 0; #X connect 15 1 13 0; #X connect 15 2 14 0; #X connect 16 0 32 0; #X connect 17 0 21 0; #X connect 18 0 17 1; #X connect 19 0 20 0; #X connect 19 0 26 0; #X connect 20 0 17 1; #X connect 21 0 23 0; #X connect 22 0 33 0; #X connect 22 1 25 0; #X connect 23 0 24 0; #X connect 24 0 31 0; #X connect 24 1 21 2; #X connect 25 0 21 1; #X connect 26 0 18 0; #X connect 27 0 22 0; #X connect 28 0 30 0; #X connect 29 0 28 0; #X connect 31 0 30 0; #X connect 32 0 17 0; #X connect 33 0 11 0; #X coords 0 -1 1 1 60 210 1 100 100; #X restore 1146 481 pd finger4; #X text 758 189 direction; #X text 758 243 position; #X text 758 297 velocity; #X text 758 351 size; #N canvas 557 95 1178 644 hand0 0; #X obj 263 -102 unpack 0 0 0; #X floatatom 195 112 5 0 0 0 x - -; #X floatatom 195 129 5 0 0 0 y - -; #X floatatom 195 146 5 0 0 0 z - -; #X obj 264 -48 unpack 0 0 0; #X floatatom 195 167 5 0 0 0 x - -; #X floatatom 195 183 5 0 0 0 y - -; #X floatatom 195 200 5 0 0 0 z - -; #X floatatom 195 342 5 0 0 0 sphere_center - -; #X floatatom 195 361 5 0 0 0 fingers - -; #X floatatom 195 378 5 0 0 0 tools - -; #X floatatom 195 325 5 0 0 0 sphere_radius - -; #X obj 263 -146 route direction palm_position palm_velocity palm_normal sphere_radius sphere_center finger_count tool_count fingers; #X obj 263 7 unpack 0 0 0; #X floatatom 195 221 5 0 0 0 x - -; #X floatatom 195 237 5 0 0 0 y - -; #X floatatom 195 253 5 0 0 0 z - -; #X obj 263 60 unpack 0 0 0; #X floatatom 195 273 5 0 0 0 x - -; #X floatatom 195 289 5 0 0 0 y - -; #X floatatom 196 305 5 0 0 0 z - -; #X text 125 112 direction; #X text 102 223 palm velocity; #X text 116 273 palm normal; #X obj 263 -199 r hand; #X text 104 167 palm position; #X text 238 169 direction; #X text 239 225 position; #X text 238 276 velocity; #X text 237 331 size; #X obj 263 -174 route 0; #X obj 175 -11 outlet; #X obj 473 273 r hand; #X obj 473 300 route 0; #N canvas 147 150 718 512 rotate_fingers 0; #X obj -492 320 rotateXYZ; #N canvas 118 218 991 636 vec-minus 0; #X obj 45 401 outlet; #X obj 45 142 inlet; #X obj 45 175 unpack 0 0 0; #X obj 153 148 inlet; #X obj 183 215 unpack 0 0 0; #X obj 45 267 expr $f4 - $f1 \; $f5 - $f2 \; $f6 - $f3; #X obj 45 325 pack 0 0 0; #X text 105 401 difference vector; #X obj 153 175 t b a; #X connect 1 0 2 0; #X connect 2 0 5 0; #X connect 2 1 5 1; #X connect 2 2 5 2; #X connect 3 0 8 0; #X connect 4 0 5 3; #X connect 4 1 5 4; #X connect 4 2 5 5; #X connect 5 0 6 0; #X connect 5 1 6 1; #X connect 5 2 6 2; #X connect 6 0 0 0; #X connect 8 0 5 0; #X connect 8 1 4 0; #X restore -355 246 pd vec-minus; #N canvas 511 187 655 437 calc-rotate 0; #X obj 40 217 outlet; #X obj 311 221 outlet; #X text 79 266 rotations; #X obj 40 70 inlet; #X text 330 131 f1: diff x; #X text 331 145 f2: diff y; #X text 331 160 f3: diff z; #X obj 263 70 inlet; #X text 45 238 Z; #X text 312 245 Y; #X floatatom 367 222 5 0 0 0 - - -; #X obj 40 139 expr 180/3.14159265 * atan2($f2 \, $f1) \; 180/3.14159265 * (acos($f3/$f4)-3.14159265/2) \;; #X connect 3 0 11 0; #X connect 7 0 11 3; #X connect 11 0 0 0; #X connect 11 1 1 0; #X connect 11 1 10 0; #X restore -346 300 pd calc-rotate; #X obj -355 273 t a a a; #N canvas 699 402 450 300 togem 0; #X obj 82 69 unpack 0 0 0; #X obj 65 124 / 20; #X obj 155 147 / 20; #X obj 112 121 / 20; #X obj 116 98 - 200; #X obj 89 188 pack f f f; #X obj 84 35 inlet; #X obj 87 222 outlet; #X connect 0 0 1 0; #X connect 0 1 4 0; #X connect 0 2 2 0; #X connect 1 0 5 0; #X connect 2 0 5 2; #X connect 3 0 5 1; #X connect 4 0 3 0; #X connect 5 0 7 0; #X connect 6 0 0 0; #X restore -355 198 pd togem; #X obj -376 171 route position; #X obj -372 115 route fingers palm_position; #X obj -376 145 route 0; #X obj -279 181 route position; #X obj -279 155 route 4; #N canvas 699 402 450 300 togem 0; #X obj 82 69 unpack 0 0 0; #X obj 65 124 / 20; #X obj 155 147 / 20; #X obj 112 121 / 20; #X obj 116 98 - 200; #X obj 89 188 pack f f f; #X obj 84 35 inlet; #X obj 87 222 outlet; #X connect 0 0 1 0; #X connect 0 1 4 0; #X connect 0 2 2 0; #X connect 1 0 5 0; #X connect 2 0 5 2; #X connect 3 0 5 1; #X connect 4 0 3 0; #X connect 5 0 7 0; #X connect 6 0 0 0; #X restore -288 208 pd togem; #X obj -352 324 * -1; #X obj -370 53 inlet; #X obj -493 281 inlet; #X obj -494 345 outlet; #X text -357 83 hand input; #X connect 0 0 14 0; #X connect 1 0 3 0; #X connect 2 0 11 0; #X connect 3 1 2 0; #X connect 4 0 1 0; #X connect 5 0 4 0; #X connect 6 0 7 0; #X connect 6 0 9 0; #X connect 7 0 5 0; #X connect 8 0 10 0; #X connect 9 0 8 0; #X connect 10 0 1 1; #X connect 11 0 0 3; #X connect 12 0 6 0; #X connect 13 0 0 0; #X restore 386 322 pd rotate_fingers; #X obj 438 109 r hand; #X obj 439 161 route 0; #N canvas 528 399 450 300 translate_gem 0; #X obj 82 69 unpack 0 0 0; #X obj 84 35 inlet; #X obj 30 207 translateXYZ; #X obj 28 153 inlet; #X obj 36 249 outlet; #X obj 65 124 / 40; #X obj 155 147 / 40; #X obj 115 126 / 40; #X obj 116 98 - 300; #X obj 156 109 - 100; #X obj 187 64 r setZ; #X obj 141 30 r setY; #X connect 0 0 5 0; #X connect 0 1 8 0; #X connect 0 2 9 0; #X connect 1 0 0 0; #X connect 2 0 4 0; #X connect 3 0 2 0; #X connect 5 0 2 1; #X connect 6 0 2 3; #X connect 7 0 2 2; #X connect 8 0 7 0; #X connect 9 0 6 0; #X connect 10 0 9 1; #X connect 11 0 8 1; #X restore 370 246 pd translate_gem; #N canvas 401 129 986 439 rotateXYZ 0; #X obj 118 19 unpack 0 0 0; #X obj 158 196 atan2; #X obj 182 159 * -1; #X obj 159 221 rad2deg; #X obj 318 202 atan2; #X obj 319 227 rad2deg; #X obj 168 386 outlet X; #X obj 324 390 outlet Y; #X obj 117 -9 inlet; #X obj 340 171 * 1; #X obj 80 183 inlet; #X obj 84 272 outlet; #X obj 82 219 rotateXYZ; #X obj 410 140 atan2; #X obj 411 165 rad2deg; #X obj 432 109 * -1; #X obj 409 36 unpack 0 0 0; #X obj 408 8 inlet; #X floatatom 411 195 5 0 0 0 - - -; #X text 579 12 Pitch: Math.atan2( y \, -z ) \; Yaw: Math.atan2( x \, -z ) \; Roll: Math.atan2( x \, -y ) \;; #X connect 0 0 4 0; #X connect 0 1 1 0; #X connect 0 2 2 0; #X connect 0 2 9 0; #X connect 1 0 3 0; #X connect 2 0 1 1; #X connect 3 0 6 0; #X connect 3 0 12 1; #X connect 4 0 5 0; #X connect 5 0 7 0; #X connect 5 0 12 2; #X connect 8 0 0 0; #X connect 9 0 4 1; #X connect 10 0 12 0; #X connect 12 0 11 0; #X connect 13 0 14 0; #X connect 14 0 18 0; #X connect 15 0 13 1; #X connect 16 0 13 0; #X connect 16 1 15 0; #X connect 17 0 16 0; #X restore 370 283 pd rotateXYZ; #X obj 369 167 r gemlist; #X obj 369 225 separator; #X msg 487 366 draw line; #X obj 487 344 initbang; #X obj 368 384 cube; #X obj 368 352 scaleXYZ 1 0.5 1; #X obj 439 209 route direction palm_position palm_velocity palm_normal ; #X text 375 145 draw; #N canvas 362 202 450 300 display 0; #X obj 94 165 spigot; #X msg 163 126 0; #X msg 136 71 bang; #X msg 136 102 1; #X obj 163 98 delay 100; #X obj 95 89 inlet; #X obj 94 202 outlet; #X obj 139 31 inlet; #X connect 0 0 6 0; #X connect 1 0 0 1; #X connect 2 0 3 0; #X connect 2 0 4 0; #X connect 3 0 0 1; #X connect 4 0 1 0; #X connect 5 0 0 0; #X connect 7 0 2 0; #X restore 369 191 pd display; #X connect 0 0 1 0; #X connect 0 1 2 0; #X connect 0 2 3 0; #X connect 4 0 5 0; #X connect 4 1 6 0; #X connect 4 2 7 0; #X connect 12 0 0 0; #X connect 12 1 4 0; #X connect 12 2 13 0; #X connect 12 3 17 0; #X connect 12 4 11 0; #X connect 12 5 8 0; #X connect 12 6 9 0; #X connect 12 7 10 0; #X connect 13 0 14 0; #X connect 13 1 15 0; #X connect 13 2 16 0; #X connect 17 0 18 0; #X connect 17 1 19 0; #X connect 17 2 20 0; #X connect 24 0 30 0; #X connect 30 0 12 0; #X connect 30 0 31 0; #X connect 32 0 33 0; #X connect 33 0 34 1; #X connect 34 0 44 0; #X connect 35 0 36 0; #X connect 36 0 45 0; #X connect 36 0 47 1; #X connect 37 0 38 0; #X connect 38 0 44 0; #X connect 39 0 47 0; #X connect 40 0 37 0; #X connect 41 0 43 0; #X connect 42 0 41 0; #X connect 44 0 43 0; #X connect 45 0 38 1; #X connect 45 1 37 1; #X connect 45 3 38 2; #X connect 47 0 40 0; #X coords 0 -1 1 1 200 300 1 100 100; #X restore 481 174 pd hand0; #X obj 227 111 spigot 0; #X obj 333 550 s hand; #X obj 333 522 route hand tool; #X obj 376 551 s tool; #X text 216 588 créer un guidon entre deux mains...; #N canvas 323 22 793 547 flags 0; #X obj 109 135 tgl 15 1 empty to_general general 17 7 0 10 -262144 -1 -1 1 1; #X obj 109 177 tgl 15 1 empty to_palm_position palm_position 17 7 0 10 -262144 -1 -1 1 1; #X obj 110 312 tgl 15 1 empty to_fingers_position position 17 7 0 10 -262144 -1 -1 1 1; #X obj 219 164 tgl 15 1 empty to_tools_position position 17 7 0 10 -262144 -1 -1 1 1; #X obj 110 344 tgl 15 1 empty to_fingers_size size 17 7 0 10 -262144 -1 -1 1 1; #X obj 219 196 tgl 15 1 empty to_tools_size size 17 7 0 10 -262144 -1 -1 1 1; #X obj 219 180 tgl 15 1 empty to_tools_velocity velocity 17 7 0 10 -262144 -1 -1 1 1; #X obj 110 328 tgl 15 1 empty to_fingers_velocity velocity 17 7 0 10 -262144 -1 -1 1 1; #X obj 109 162 tgl 15 1 empty to_direction direction 17 7 0 10 -262144 -1 -1 1 1; #X obj 109 220 tgl 15 1 empty to_sphere_radius sphere_radius 17 7 0 10 -262144 -1 -1 1 1; #X obj 109 235 tgl 15 1 empty to_sphere_center sphere_center 17 7 0 10 -262144 -1 -1 1 1; #X obj 109 250 tgl 15 1 empty to_finger_count finger_count 17 7 0 10 -262144 -1 -1 1 1; #X obj 109 265 tgl 15 1 empty to_tool_count tool_count 17 7 0 10 -262144 -1 -1 1 1; #X obj 109 191 tgl 15 1 empty to_palm_velocity palm_velocity 17 7 0 10 -262144 -1 -1 1 1; #X obj 109 206 tgl 15 1 empty to_palm_normal palm_normal 17 7 0 10 -262144 -1 -1 1 1; #X obj -49 463 outlet; #X msg -49 133 general \$1; #X msg -50 177 hands_direction \$1; #X msg -48 236 hands_sphere_radius \$1; #X msg -48 251 hands_sphere_center \$1; #X msg -48 266 hands_finger_count \$1; #X msg -48 280 hands_tool_count \$1; #X msg -50 192 hands_palm_position \$1; #X msg -49 206 hands_palm_velocity \$1; #X msg -48 220 hands_palm_normal \$1; #X msg -49 359 fingers_size \$1; #X obj 359 427 list prepend gestures; #X obj 359 450 list trim; #X msg 356 210 tools_size \$1; #X msg -49 327 fingers_position \$1; #X msg -49 345 fingers_velocity \$1; #X msg 356 179 tools_position \$1; #X msg 356 194 tools_velocity \$1; #X msg 359 312 TYPE_CIRCLE \$1; #X msg 359 343 TYPE_KEY_TAP \$1; #X msg 359 358 TYPE_SCREEN_TAP \$1; #X msg 359 328 TYPE_SWIPE \$1; #X obj 220 296 tgl 15 1 empty to_gestures_circle circle 17 7 0 10 -262144 -1 -1 1 1; #X obj 220 326 tgl 15 1 empty to_gestures_key_tap key_tap 17 7 0 10 -262144 -1 -1 1 1; #X obj 220 341 tgl 15 1 empty to_gestures_screen_tap screen_tap 17 7 0 10 -262144 -1 -1 1 1; #X obj 220 311 tgl 15 1 empty to_gestures_swipe swipe 17 7 0 10 -262144 -1 -1 1 1; #X obj 110 299 tgl 15 1 empty to_fingers_direction direction 17 7 0 10 -262144 -1 -1 1 1; #X msg -49 310 fingers_direction \$1; #X text 108 147 hands; #X text 108 279 fingers; #X text 218 277 gestures; #X text 218 131 tools; #X obj 219 148 tgl 15 1 empty to_tools_direction direction 17 7 0 10 -262144 -1 -1 1 1; #X msg 356 163 tools_direction \$1; #X obj 218 110 tgl 15 0 empty empty all_on/off 17 7 0 10 -258113 -1 -1 0 1; #X msg 544 128 \; to_general \$1 \; to_direction \$1 \; to_palm_position \$1 \; to_palm_velocity \$1 \; to_palm_normal \$1 \; to_sphere_radius \$1 \; to_sphere_center \$1 \; to_finger_count \$1 \; to_tool_count \$1 \; to_fingers_direction \$1 \; to_fingers_position \$1 \; to_fingers_velocity \$1 \; to_fingers_size \$1 \; to_tools_direction \$1 \; to_tools_position \$1 \; to_tools_velocity \$1 \; to_tools_size \$1 \; to_gestures_circle \$1 \; to_gestures_swipe \$1 \; to_gestures_key_tap \$1 \; to_gestures_screen_tap \$1 \;; #X obj 218 76 inlet; #X connect 0 0 16 0; #X connect 1 0 22 0; #X connect 2 0 29 0; #X connect 3 0 31 0; #X connect 4 0 25 0; #X connect 5 0 28 0; #X connect 6 0 32 0; #X connect 7 0 30 0; #X connect 8 0 17 0; #X connect 9 0 18 0; #X connect 10 0 19 0; #X connect 11 0 20 0; #X connect 12 0 21 0; #X connect 13 0 23 0; #X connect 14 0 24 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 15 0; #X connect 21 0 15 0; #X connect 22 0 15 0; #X connect 23 0 15 0; #X connect 24 0 15 0; #X connect 25 0 15 0; #X connect 26 0 27 0; #X connect 27 0 15 0; #X connect 28 0 15 0; #X connect 29 0 15 0; #X connect 30 0 15 0; #X connect 31 0 15 0; #X connect 32 0 15 0; #X connect 33 0 26 0; #X connect 34 0 26 0; #X connect 35 0 26 0; #X connect 36 0 26 0; #X connect 37 0 33 0; #X connect 38 0 34 0; #X connect 39 0 35 0; #X connect 40 0 36 0; #X connect 41 0 42 0; #X connect 42 0 15 0; #X connect 47 0 48 0; #X connect 48 0 15 0; #X connect 49 0 50 0; #X connect 51 0 49 0; #X coords 0 -1 1 1 250 270 1 100 100; #X restore 227 174 pd flags; #X obj 105 71 route active debug; #X obj 353 119 declare -lib zexy; #X obj 353 139 declare -path zexy; #X connect 0 0 4 0; #X connect 1 0 2 0; #X connect 2 0 0 0; #X connect 3 0 4 0; #X connect 4 0 7 0; #X connect 4 0 8 0; #X connect 4 1 8 0; #X connect 4 1 42 0; #X connect 4 2 5 0; #X connect 4 2 8 0; #X connect 9 0 40 0; #X connect 22 0 46 0; #X connect 23 0 1 0; #X connect 24 0 40 1; #X connect 29 0 30 0; #X connect 29 0 31 0; #X connect 29 0 32 0; #X connect 29 0 33 0; #X connect 29 0 34 0; #X connect 39 0 17 0; #X connect 39 0 18 0; #X connect 39 0 19 0; #X connect 39 0 20 0; #X connect 39 0 21 0; #X connect 40 0 10 0; #X connect 42 0 41 0; #X connect 42 1 43 0; #X connect 45 0 4 0; #X connect 46 0 23 0; #X connect 46 1 24 0; #X connect 46 2 4 0; #X coords 0 -1 1 1 120 40 1 100 100;