Update of /cvsroot/pure-data/externals/pdp/opengl/doc/examples In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6756/opengl/doc/examples
Added Files: arm.pd example01.pd example02.pd example03.pd example04.pd example05.pd example06.pd example07.pd example08.pd example09.pd example10.pd example11.pd example12.pd example13.pd example14.pd example15.pd example16.pd Log Message: checking in pdp 0.12.4 from http://zwizwa.fartit.com/pd/pdp/pdp-0.12.4.tar.gz
--- NEW FILE: example11.pd --- #N canvas 542 122 669 675 10; #X obj 23 70 metro 40; #X obj 23 40 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 ; #X obj 23 517 3dp_mouserotate; #X obj 171 520 3dp_light 0; #X obj 23 444 3dp_push; #X obj 171 492 3dp_view transz 5; #X obj 23 112 3dp_windowcontext; #X obj 205 311 3dp_snap; #X obj 205 213 3dp_draw clear; #X obj 23 406 3dp_draw clear; #X obj 60 347 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 ; #X obj 23 157 3dp_subcontext 64 64; #X obj 23 380 spigot; #X text 384 210 <- clear it; #X text 380 309 <- snap to texture; #X obj 205 261 3dp_view rota 1 1 0; #X floatatom 333 236 5 0 0; #X text 69 10 multipass rendering to texture using a subcontext (subwindow) ; #X text 381 285 <- draw a wireframe sphere; #X text 383 235 <- rotate around (1 , 1 , 0); #X text 135 406 <- clear the window; #X obj 205 286 3dp_draw wsphere 3 10 10; #X obj 323 429 3dp_draw clear; #X obj 323 405 3dp_view reset; #X obj 323 507 3dp_draw wdodeca; #X obj 323 532 3dp_snap; #X obj 22 613 3dp_draw cube 10; #X obj 360 348 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1; #X obj 323 381 spigot; #X text 381 346 <- enable/disable second pass; #X text 87 345 <- enable/disable third pass; #X text 443 404 <- reset context; #X text 442 427 <- clear context; #X text 442 507 <- draw wire dodecahedron; #X text 441 532 <- snap to texture; #X obj 323 483 3dp_view rota 1 1 0; #X floatatom 451 458 5 0 0; #X text 501 457 <- rotate around (1 , 1 , 0); #X obj 23 562 3dp_draw cube 2; #X text 204 142 NOTE: the part you use as a subcontext must be visible for the texture snap to work.; #X text 203 91 use the lower left 64x64 part of the window as a subcontext (right outlet) the left outlet is a new full window context reset to default.; #X connect 0 0 6 0; #X connect 1 0 0 0; #X connect 2 0 38 0; #X connect 4 0 2 0; #X connect 4 1 5 0; #X connect 5 0 3 0; #X connect 6 0 11 0; #X connect 6 1 2 1; #X connect 7 0 28 0; #X connect 7 1 38 1; #X connect 8 0 15 0; #X connect 9 0 4 0; #X connect 10 0 12 1; #X connect 11 0 12 0; #X connect 11 1 8 0; #X connect 12 0 9 0; #X connect 15 0 21 0; #X connect 16 0 15 4; #X connect 21 0 7 0; #X connect 22 0 35 0; #X connect 23 0 22 0; #X connect 24 0 25 0; #X connect 25 1 26 1; #X connect 27 0 28 1; #X connect 28 0 23 0; #X connect 35 0 24 0; #X connect 36 0 35 4; #X connect 38 0 26 0;
--- NEW FILE: example12.pd --- #N canvas 529 191 669 751 10; #X obj 55 68 metro 40; #X obj 55 38 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 ; #X obj 55 515 3dp_mouserotate; #X obj 184 514 3dp_light 0; #X obj 55 442 3dp_push; #X obj 184 486 3dp_view transz 5; #X obj 55 110 3dp_windowcontext; #X obj 343 481 3dp_snap; #X obj 55 404 3dp_draw clear; #X obj 436 272 3dp_light 0; #X obj 436 244 3dp_view transxyz 5 5 0; #X obj 285 226 3dp_push; #X obj 343 449 3dp_draw sphere 7 10 10; #X text 69 10 another multipass rendering example; #X obj 55 576 3dp_draw cube 7; #X obj 55 155 3dp_subcontext 256 256; #X obj 285 260 3dp_mouserotate; #X obj 343 413 3dp_draw icosa 1; #X obj 285 342 3dp_color; #X obj 343 387 3dp_view scale 1; #X floatatom 450 358 5 0 0; #N canvas 0 0 291 420 coord_to_color 0; #X obj 97 85 route drag; #X obj 97 147 *; #X obj 134 146 *; #X obj 97 174 +; #X obj 97 281 sqrt; #X obj 97 225 - 1; #X obj 97 249 * -1; #X obj 97 114 unpack 0 0; #X obj 98 45 inlet; #X obj 53 337 outlet; #X obj 181 332 outlet; #X obj 116 336 outlet; #X connect 0 0 7 0; #X connect 1 0 3 0; #X connect 2 0 3 1; #X connect 3 0 5 0; #X connect 4 0 11 0; #X connect 5 0 6 0; #X connect 6 0 4 0; #X connect 7 0 1 1; #X connect 7 0 1 0; #X connect 7 0 9 0; #X connect 7 1 2 1; #X connect 7 1 2 0; #X connect 7 1 10 0; #X connect 8 0 0 0; #X restore 304 305 pd coord_to_color; #X obj 453 337 hsl 128 15 1 3 0 1 empty empty empty -2 -6 0 8 -262144 -1 -1 7900 1; #X obj 285 196 3dp_draw clear; #X obj 92 622 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 55 662 3dp_screenshot /tmp/screenshot.png; #X msg 227 71 dim 1023 768; #X connect 0 0 6 0; #X connect 1 0 0 0; #X connect 2 0 14 0; #X connect 4 0 2 0; #X connect 4 1 5 0; #X connect 5 0 3 0; #X connect 6 0 15 0; #X connect 6 1 2 1; #X connect 6 1 21 0; #X connect 6 1 16 1; #X connect 7 1 12 1; #X connect 7 1 14 1; #X connect 8 0 4 0; #X connect 10 0 9 0; #X connect 11 0 16 0; #X connect 11 1 10 0; #X connect 12 0 7 0; #X connect 14 0 25 0; #X connect 15 0 8 0; #X connect 15 1 23 0; #X connect 16 0 18 0; #X connect 17 0 12 0; #X connect 18 1 19 0; #X connect 19 0 17 0; #X connect 20 0 19 1; #X connect 21 0 18 1; #X connect 21 1 18 2; #X connect 21 2 18 3; #X connect 22 0 20 0; #X connect 23 0 11 0; #X connect 24 0 25 0; #X connect 26 0 6 0;
--- NEW FILE: example14.pd --- #N canvas 586 145 669 674 10; #X obj 67 71 3dp_windowcontext; #X obj 67 46 metro 40; #X obj 67 23 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 ; #X obj 67 155 3dp_blend; #X obj 176 423 3dp_view transxyz; #X msg 226 296 reset; #X obj 197 374 *; #X obj 304 375 *; #X floatatom 320 347 5 0 0; #X obj 274 154 vsl 15 30 0 1 0 1 empty empty empty 0 -8 0 8 -262144 -1 -1 700 1; #X obj 316 154 vsl 15 30 0 1 0 1 empty empty empty 0 -8 0 8 -262144 -1 -1 1100 1; #X obj 295 154 vsl 15 30 0 1 0 1 empty empty empty 0 -8 0 8 -262144 -1 -1 1200 1; #X obj 337 154 vsl 15 30 0 1 0 1 empty empty empty 0 -8 0 8 -262144 -1 -1 400 1; #X obj 125 253 3dp_push; #X obj 67 95 3dp_mouserotate; #X obj 67 124 3dp_view scale 1; #X floatatom 206 99 5 0 0; #X obj 209 79 hsl 128 15 0.2 5 1 1 empty empty empty -2 -6 0 8 -262144 -1 -1 7000 1; #X obj 323 326 hsl 128 15 0.1 2 1 1 empty empty empty -2 -6 0 8 -262144 -1 -1 2100 1; #X obj 67 187 3dp_color; #X obj 226 223 route press3; #X text 329 223 <- right click mouse to reset; #X text 211 253 <- remove 3dp_push object to accumulate the translations ; #X obj 197 326 randomwalk2D 100; #X obj 125 224 3dp_for 100; #X text 287 130 R G B I; #X obj 176 460 3dp_draw cube 1; #X text 227 13 using 3dp_for and the randomwalk2D abstraction to create random walking blended cubes.; #X connect 0 0 14 0; #X connect 0 1 14 1; #X connect 0 1 20 0; #X connect 1 0 0 0; #X connect 2 0 1 0; #X connect 3 0 19 0; #X connect 4 0 26 0; #X connect 5 0 23 0; #X connect 6 0 4 1; #X connect 7 0 4 2; #X connect 8 0 7 1; #X connect 8 0 6 1; #X connect 9 0 19 1; #X connect 10 0 19 3; #X connect 11 0 19 2; #X connect 12 0 19 4; #X connect 13 1 4 0; #X connect 14 0 15 0; #X connect 15 0 3 0; #X connect 16 0 15 1; #X connect 17 0 16 0; #X connect 18 0 8 0; #X connect 19 1 24 0; #X connect 20 0 5 0; #X connect 23 0 6 0; #X connect 23 1 7 0; #X connect 24 0 13 0; #X connect 24 1 23 0;
--- NEW FILE: arm.pd --- #N canvas 475 534 572 380 10; #X obj 43 10 inlet; #X obj 43 227 outlet; #X obj 43 141 3dp_push; #X obj 208 200 3dp_view transx 0.5; #X obj 43 113 3dp_view rotz; #X obj 260 11 inlet; #X obj 208 174 3dp_view scalex $1; #X obj 43 186 3dp_view transx $1; #X obj 260 275 r texture; #X obj 43 83 3dp_view roty; #X obj 129 61 r roty; #X obj 329 91 r scale; #X obj 43 37 3dp_draw cube 1; #X obj 143 11 r cubesize; #X obj 208 334 3dp_draw torus 0.25 0.5 6; #X obj 208 256 spigot; #X obj 245 232 r drawtorus; #X obj 276 307 r torusr1; #X obj 353 307 r torusr2; #X text 375 27 draw one arm segment; #X connect 0 0 12 0; #X connect 2 0 7 0; #X connect 2 1 6 0; #X connect 3 0 15 0; #X connect 4 0 2 0; #X connect 5 0 4 1; #X connect 6 0 3 0; #X connect 7 0 1 0; #X connect 8 0 14 1; #X connect 9 0 4 0; #X connect 10 0 9 1; #X connect 11 0 6 1; #X connect 11 0 7 1; #X connect 12 0 9 0; #X connect 13 0 12 2; #X connect 15 0 14 0; #X connect 16 0 15 1; #X connect 17 0 14 2; #X connect 18 0 14 3;
--- NEW FILE: example09.pd --- #N canvas 96 78 756 667 10; #X obj 18 111 3dp_windowcontext; #X obj 18 139 3dp_push; #X obj 18 169 3dp_mouserotate; #X floatatom 141 370 5 0 0; #X msg 141 349 10; #X obj 127 490 3dp_view rotx; #X obj 127 537 3dp_view roty; #X obj 127 585 3dp_view rotz; #X obj 213 460 random 360; #X obj 213 515 random 360; #X obj 213 562 random 360; #X obj 213 433 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 76 428 3dp_push; #X floatatom 278 431 5 0 0; #X obj 76 395 3dp_for 10; #X obj 18 226 3dp_blend; #X text 87 226 <-- click for more info; #X obj 18 365 3dp_color; #X floatatom 32 311 5 0 0; #X floatatom 78 311 5 0 0; #X floatatom 123 311 5 0 0; #X floatatom 167 311 5 0 0; #X obj 415 193 3dp_view transz 5; #X obj 415 217 3dp_light; #X obj 18 78 metro 40; #X obj 18 50 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 ; #X floatatom 529 166 5 0 0; #X obj 32 252 vsl 15 50 0 1 0 1 empty empty empty 0 -8 0 8 -262144 -1 -1 2200 1; #X obj 78 251 vsl 15 50 0 1 0 1 empty empty empty 0 -8 0 8 -262144 -1 -1 2100 1; #X obj 123 251 vsl 15 50 0 1 0 1 empty empty empty 0 -8 0 8 -262144 -1 -1 3800 1; #X obj 169 250 vsl 15 50 0 1 0 1 empty empty empty 0 -8 0 8 -262144 -1 -1 1100 1; #X text 209 275 in this blending mode , alpha is interpreted as a color gain; #X floatatom 515 137 5 0 0; #X floatatom 144 178 5 0 0; #X obj 127 633 3dp_draw tetra 4; #X text 14 13 similar to as example08.; #X obj 415 168 3dp_view roty 5; #X obj 18 199 3dp_view scale 4; #X msg 278 406 18; #X msg 515 112 75; #X connect 0 0 1 0; #X connect 0 1 2 1; #X connect 1 0 2 0; #X connect 1 1 36 0; #X connect 2 0 37 0; #X connect 3 0 14 1; #X connect 4 0 3 0; #X connect 5 0 6 0; #X connect 6 0 7 0; #X connect 7 0 34 0; #X connect 8 0 5 1; #X connect 9 0 6 1; #X connect 10 0 7 1; #X connect 11 0 8 0; #X connect 11 0 9 0; #X connect 11 0 10 0; #X connect 12 1 5 0; #X connect 13 0 8 1; #X connect 13 0 9 1; #X connect 13 0 10 1; #X connect 14 0 12 0; #X connect 14 1 11 0; #X connect 15 0 17 0; #X connect 17 1 14 0; #X connect 18 0 17 1; #X connect 19 0 17 2; #X connect 20 0 17 3; #X connect 21 0 17 4; #X connect 22 0 23 0; #X connect 24 0 0 0; #X connect 25 0 24 0; #X connect 26 0 22 1; #X connect 27 0 18 0; #X connect 28 0 19 0; #X connect 29 0 20 0; #X connect 30 0 21 0; #X connect 32 0 36 1; #X connect 33 0 37 1; #X connect 36 0 22 0; #X connect 37 0 15 0; #X connect 38 0 13 0; #X connect 39 0 32 0;
--- NEW FILE: example10.pd --- #N canvas 592 340 647 499 10; #X obj 231 344 pdp_xv; #X obj 54 72 metro 40; #X obj 54 47 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 ; #X obj 54 140 3dp_push; #X obj 248 158 3dp_view transz 5; #X floatatom 362 126 5 0 0; #X obj 248 182 3dp_light 0; #X obj 54 169 3dp_mouserotate; #X obj 54 111 3dp_windowcontext; #X obj 231 311 pdp_blur; #X obj 285 291 hsl 128 15 0 1 0 1 empty empty empty -2 -6 0 8 -262144 -1 -1 8100 1; #X text 104 7 connect 3dp and basic pdp image processing with 3dp_snap ; #X text 105 26 3dp_snap defaults to texture packets , but you can specify the desired type as a creation argument; #X obj 107 377 pdp_convert texture/*/*; #X obj 54 412 3dp_draw cube 10; #X text 247 233 <- specify packet type and capture area; #X obj 54 200 3dp_draw cube 2; #X obj 54 234 3dp_snap image/*/* 320 240; #X connect 1 0 8 0; #X connect 2 0 1 0; #X connect 3 0 7 0; #X connect 3 1 4 0; #X connect 4 0 6 0; #X connect 5 0 4 1; #X connect 7 0 16 0; #X connect 8 0 3 0; #X connect 8 1 7 1; #X connect 9 0 13 0; #X connect 9 0 0 0; #X connect 10 0 9 1; #X connect 13 0 14 1; #X connect 16 0 17 0; #X connect 17 0 14 0; #X connect 17 1 9 0;
--- NEW FILE: example04.pd --- #N canvas 288 311 566 284 10; #X obj 54 156 3dp_windowcontext; #X obj 54 43 metro 40; #X obj 54 19 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 ; #X obj 54 76 t b b; #X obj 134 120 pdp_convert texture/*/*; #X obj 54 183 3dp_mouserotate; #X floatatom 180 202 5 0 0 0 - - -; #X msg 134 68 open /dev/video1; #X obj 54 227 3dp_draw sphere 5; #X text 132 18 convert pdp image packets to textures and map them on a sphere; #X obj 134 93 pdp_v4l; #X connect 0 0 5 0; #X connect 0 1 5 1; #X connect 1 0 3 0; #X connect 2 0 1 0; #X connect 3 0 0 0; #X connect 3 1 10 0; #X connect 4 0 8 1; #X connect 5 0 8 0; #X connect 6 0 8 2; #X connect 7 0 10 0; #X connect 10 0 4 0;
--- NEW FILE: example06.pd --- #N canvas 516 361 634 497 10; #X obj 23 119 metro 40; #X obj 23 89 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 ; #X obj 360 397 pdp_convert texture/*/*; #X obj 23 387 3dp_mouserotate; #X obj 155 255 3dp_light 0; #X obj 23 193 3dp_push; #X floatatom 269 198 5 0 0; #X obj 23 161 3dp_windowcontext; #X obj 360 299 pdp_convert image/grey/*; #X obj 360 184 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X msg 478 163 random; #X msg 479 186 rule gameoflife; #X msg 478 114 rule fire; #X obj 360 270 pdp_ca; #X obj 360 371 pdp_motion_phase; #X floatatom 479 343 5 0 0; #X obj 478 88 loadbang; #X msg 479 322 0.33; #X obj 328 473 3dp_draw sphere 2.6; #X floatatom 463 434 5 0 0; #X obj 155 227 3dp_view transz 5; #X floatatom 480 237 5 0 0; #X msg 517 322 1; #X obj 360 347 pdp_gain; #X floatatom 411 323 5 0 0; #X msg 478 139 dim 256 128; #X obj 179 393 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1; #X obj 328 419 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1; #X obj 23 416 3dp_toggle depth_test 0; #X obj 179 445 3dp_toggle blend_add 1; #X msg 480 213 1; #X obj 23 316 3dp_mode texture; #X floatatom 281 310 5 0 0; #X obj 156 339 3dp_view scale 1; #X floatatom 280 340 5 0 0; #X obj 156 366 3dp_view rotz; #X text 141 197 move light source; #X text 143 294 transform texture coords; #X text 31 12 blending with depth test disabled using 3dp_toggle object. together with a cellular automata texture (you need pdp_scaf for this) and texture coordinate transformation.; #X connect 0 0 7 0; #X connect 0 0 9 0; #X connect 1 0 0 0; #X connect 2 0 18 1; #X connect 3 0 28 0; #X connect 5 0 31 0; #X connect 5 1 20 0; #X connect 6 0 20 1; #X connect 7 0 5 0; #X connect 7 1 3 1; #X connect 8 0 23 0; #X connect 9 0 13 0; #X connect 10 0 13 0; #X connect 11 0 13 0; #X connect 12 0 13 0; #X connect 12 0 25 0; #X connect 13 0 8 0; #X connect 14 0 2 0; #X connect 15 0 14 1; #X connect 16 0 12 0; #X connect 17 0 15 0; #X connect 19 0 18 2; #X connect 20 0 4 0; #X connect 21 0 13 2; #X connect 22 0 15 0; #X connect 23 0 14 0; #X connect 24 0 23 1; #X connect 25 0 13 0; #X connect 25 0 10 0; #X connect 26 0 28 1; #X connect 27 0 29 1; #X connect 28 1 29 0; #X connect 29 1 18 0; #X connect 30 0 21 0; #X connect 31 0 3 0; #X connect 31 1 33 0; #X connect 32 0 33 1; #X connect 33 0 35 0; #X connect 34 0 35 1;
--- NEW FILE: example08.pd --- #N canvas 96 78 756 667 10; #X obj 18 131 3dp_windowcontext; #X obj 18 159 3dp_push; #X obj 327 80 metro 40; #X obj 327 52 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 ; #X obj 327 224 pdp_v4l; #X obj 431 463 pdp_convert texture/*/*; #X floatatom 488 554 5 0 0; #X obj 18 215 3dp_view scalex 1.33333; #X obj 18 189 3dp_mouserotate; #X floatatom 83 308 5 0 0; #X msg 83 287 10; #X obj 69 428 3dp_view rotx; #X obj 69 475 3dp_view roty; #X obj 69 523 3dp_view rotz; #X obj 155 398 random 360; #X obj 155 453 random 360; #X obj 155 500 random 360; #X obj 155 371 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 18 366 3dp_push; #X text 132 305 nb of squares; #X floatatom 220 369 5 0 0; #X obj 431 309 pdp_plasma; #X obj 431 256 loadbang; #X obj 327 192 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 397 279 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X msg 417 55 200; #X floatatom 510 364 5 0 0; #X msg 378 55 40; #X obj 327 126 spigot; #X obj 385 106 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1; #X obj 431 395 pdp_gain 0.3; #X obj 18 333 3dp_for 10; #X text 21 12 another example of accumulated blending combined with a 3dp_for object to render multiple randomly rotated squares.; #X msg 386 186 open /dev/video1; #X obj 18 246 3dp_blend; #X text 411 106 switch between video textures and stills; #X msg 386 160 open /dev/video0; #X text 87 246 <-- click for more info; #X msg 431 281 dim 64 64 , bang; #X obj 548 228 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1; #X obj 548 256 metro 2000; #X obj 374 583 3dp_draw square 8; #X connect 0 0 1 0; #X connect 0 1 8 1; #X connect 1 0 8 0; #X connect 2 0 0 0; #X connect 2 0 28 0; #X connect 3 0 2 0; #X connect 4 0 30 0; #X connect 5 0 41 1; #X connect 6 0 41 2; #X connect 7 0 34 0; #X connect 8 0 7 0; #X connect 9 0 31 1; #X connect 10 0 9 0; #X connect 11 0 12 0; #X connect 12 0 13 0; #X connect 13 0 41 0; #X connect 14 0 11 1; #X connect 15 0 12 1; #X connect 16 0 13 1; #X connect 17 0 14 0; #X connect 17 0 15 0; #X connect 17 0 16 0; #X connect 18 1 11 0; #X connect 20 0 14 1; #X connect 20 0 15 1; #X connect 20 0 16 1; #X connect 21 0 30 0; #X connect 22 0 38 0; #X connect 23 0 4 0; #X connect 24 0 21 0; #X connect 25 0 2 1; #X connect 26 0 30 1; #X connect 27 0 2 1; #X connect 28 0 23 0; #X connect 29 0 28 1; #X connect 30 0 5 0; #X connect 31 0 18 0; #X connect 31 1 17 0; #X connect 33 0 4 0; #X connect 34 0 31 0; #X connect 36 0 4 0; #X connect 38 0 21 0; #X connect 39 0 40 0; #X connect 40 0 21 0;
--- NEW FILE: example05.pd --- #N canvas 352 162 732 325 10; #X obj 54 43 metro 40; #X obj 54 19 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 ; #X obj 314 120 pdp_convert texture/*/*; #X floatatom 343 212 5 0 0; #X obj 286 247 3dp_draw sphere 5; #X obj 314 95 pdp_plasma; #X obj 408 48 loadbang; #X msg 408 70 dim 512 256; #X obj 314 65 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 181 144 3dp_windowcontext; #X obj 181 203 3dp_view roty; #X floatatom 267 176 5 0 0; #X obj 31 144 3dp_windowcontext; #X obj 31 203 3dp_view roty; #X floatatom 117 176 5 0 0; #X obj 286 278 3dp_draw cube 2; #X obj 336 164 pdp_del 3; #X text 414 164 <- textures can be stored in a delay line; #X text 133 9 convert pdp image packets to textures and map them on a sphere and cube. create 2 independent viewing windows.; #X connect 0 0 9 0; #X connect 0 0 12 0; #X connect 1 0 0 0; #X connect 2 0 4 1; #X connect 2 0 16 0; #X connect 3 0 4 2; #X connect 4 0 15 0; #X connect 5 0 2 0; #X connect 6 0 7 0; #X connect 7 0 5 0; #X connect 8 0 5 0; #X connect 9 0 10 0; #X connect 10 0 4 0; #X connect 11 0 10 1; #X connect 12 0 13 0; #X connect 13 0 4 0; #X connect 14 0 13 1; #X connect 16 0 15 1;
--- NEW FILE: example03.pd --- #N canvas 382 102 480 535 10; #X obj 102 73 3dp_windowcontext; #X obj 102 36 metro 20; #X obj 102 139 3dp_push; #X obj 261 185 3dp_light; #X obj 102 11 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 ; #X obj 56 40 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X msg 253 32 cursor $1; #X obj 253 12 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 ; #X obj 102 209 3dp_mouserotate; #X obj 261 163 3dp_view transxyz -4 3 4; #X obj 102 427 arm 3; #X obj 371 230 loadbang; #X obj 102 333 pdp_t p p p p; #X obj 102 304 pdp_t p p p p; #X floatatom 199 386 5 0 0; #X obj 318 378 s roty; #X floatatom 318 327 5 0 0; #X obj 371 378 s drawtorus; #X obj 371 355 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1; #X obj 102 256 pdp_t p b; #X obj 212 273 f 0; #X obj 302 352 *; #X obj 183 409 *; #X obj 212 307 + 0.1; #X obj 102 105 3dp_view transz -5; #X text 41 471 it is possible to send the rendercontext to the same rendering/transforming chain multiple times. (in other words: 3dp objects do not support fanout , but they do support fanin.); #X connect 0 0 24 0; #X connect 0 1 8 1; #X connect 1 0 0 0; #X connect 2 0 8 0; #X connect 2 1 9 0; #X connect 4 0 1 0; #X connect 5 0 0 0; #X connect 6 0 0 0; #X connect 7 0 6 0; #X connect 8 0 19 0; #X connect 9 0 3 0; #X connect 11 0 18 0; #X connect 12 0 10 0; #X connect 12 1 10 0; #X connect 12 2 10 0; #X connect 12 3 10 0; #X connect 13 0 12 0; #X connect 13 1 12 0; #X connect 13 2 12 0; #X connect 13 3 12 0; #X connect 14 0 22 1; #X connect 16 0 21 1; #X connect 18 0 17 0; #X connect 19 0 13 0; #X connect 19 1 20 0; #X connect 20 0 23 0; #X connect 21 0 15 0; #X connect 22 0 10 1; #X connect 23 0 20 1; #X connect 23 0 22 0; #X connect 23 0 21 0; #X connect 24 0 2 0;
--- NEW FILE: example02.pd --- #N canvas 696 306 480 535 10; #X obj 102 73 3dp_windowcontext; #X obj 102 36 metro 20; #X obj 102 122 3dp_push; #X obj 102 11 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 ; #X obj 56 40 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X msg 253 32 cursor $1; #X obj 253 12 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 ; #X obj 102 209 3dp_mouserotate; #X obj 153 322 3dp_draw cube 1; #X obj 265 139 3dp_view transxyz -4 3 4; #X obj 102 270 3dp_push; #X obj 102 348 3dp_push; #X obj 102 425 3dp_push; #X obj 153 296 3dp_view transx 2; #X obj 153 374 3dp_view transy 2; #X obj 153 451 3dp_view transz 2; #X obj 153 400 3dp_draw cube 1; #X obj 153 477 3dp_draw cube 1; #X obj 102 506 3dp_draw dodeca 1; #X text 25 231 use the mouse to rotate the model (but not the light source since it is rendered before the rotation is applied.); #X obj 265 161 3dp_light; #X connect 0 0 2 0; #X connect 0 1 7 1; #X connect 1 0 0 0; #X connect 2 0 7 0; #X connect 2 1 9 0; #X connect 3 0 1 0; #X connect 4 0 0 0; #X connect 5 0 0 0; #X connect 6 0 5 0; #X connect 7 0 10 0; #X connect 9 0 20 0; #X connect 10 0 11 0; #X connect 10 1 13 0; #X connect 11 0 12 0; #X connect 11 1 14 0; #X connect 12 0 18 0; #X connect 12 1 15 0; #X connect 13 0 8 0; #X connect 14 0 16 0; #X connect 15 0 17 0;
--- NEW FILE: example07.pd --- #N canvas 400 454 637 428 10; #X obj 18 131 3dp_windowcontext; #X obj 18 159 3dp_push; #X obj 201 70 metro 40; #X obj 201 42 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 ; #X obj 201 99 pdp_v4l; #X obj 201 131 pdp_convert texture/*/*; #X floatatom 258 265 5 0 0; #X obj 18 218 3dp_view scalex 1.33333; #X obj 18 187 3dp_mouserotate; #X text 15 10 using a square scaled by an aspect ratio to construct an an alternative pdp_glx; #X obj 144 290 3dp_draw square 8; #X connect 0 0 1 0; #X connect 0 1 8 1; #X connect 1 0 8 0; #X connect 2 0 0 0; #X connect 2 0 4 0; #X connect 3 0 2 0; #X connect 4 0 5 0; #X connect 5 0 10 1; #X connect 6 0 10 2; #X connect 7 0 10 0; #X connect 8 0 7 0;
--- NEW FILE: example01.pd --- #N canvas 426 142 799 779 10; #X floatatom 126 37 5 0 0 0 - - -; #X obj 56 20 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X msg 83 19 stop; #X floatatom 360 431 5 0 0 0 - - -; #X obj 59 103 3dp_push; #X floatatom 672 189 5 0 0 0 - - -; #X obj 546 244 3dp_view transx 3; #X obj 546 270 3dp_light; #X obj 612 97 f; #X floatatom 641 98 5 0 0 0 - - -; #X floatatom 669 370 5 0 0 0 - - -; #X obj 182 491 arm 3; #X obj 182 514 arm 3; #X obj 182 537 arm 3; #X obj 182 467 arm 3; #X floatatom 360 455 5 0 0 0 - - -; #X floatatom 359 478 5 0 0 0 - - -; #X floatatom 358 501 5 0 0 0 - - -; #X floatatom 358 524 5 0 0 0 - - -; #X obj 182 584 arm 3; #X obj 182 607 arm 3; #X obj 182 630 arm 3; #X obj 182 560 arm 3; #X floatatom 358 548 5 0 0 0 - - -; #X floatatom 358 571 5 0 0 0 - - -; #X floatatom 358 594 5 0 0 0 - - -; #X obj 59 224 3dp_view roty; #X obj 284 449 * 1; #X obj 284 589 * -1; #X obj 182 653 arm 3; #X floatatom 358 617 5 0 0 0 - - -; #X obj 284 635 * -1.5; #X obj 663 686 s roty; #X floatatom 615 611 5 0 0 0 - - -; #X floatatom 671 585 5 0 0 0 - - -; #X obj 673 616 s scale; #X floatatom 359 388 5 0 0 0 - - -; #X obj 284 473 * -1.01; #X obj 284 496 * 0.99; #X obj 284 519 * -1.01; #X obj 284 542 * 2.1; #X obj 284 566 * -1.7; #X obj 182 425 3dp_draw cube 1.4; #X obj 182 809 3dp_draw cube 1.4; #X msg 597 536 4; #X obj 59 151 3dp_view transz -3; #X obj 546 216 3dp_view roty 54; #X obj 669 392 s cubesize; #X msg 360 345 3.15; #X msg 126 17 20; #X obj 284 612 * 0.11; #X floatatom 672 220 5 0 0 0 - - -; #X msg 612 72 0; #X obj 342 311 * 1; #X obj 59 201 3dp_view rotx; #X floatatom 164 187 5 0 0 0 - - -; #X floatatom 358 641 5 0 0 0 - - -; #X obj 182 700 arm 3; #X obj 182 724 arm 3; #X obj 182 748 arm 3; #X obj 182 677 arm 3; #X floatatom 359 664 5 0 0 0 - - -; #X floatatom 359 688 5 0 0 0 - - -; #X floatatom 360 712 5 0 0 0 - - -; #X obj 284 706 * -1; #X obj 182 771 arm 3; #X floatatom 360 735 5 0 0 0 - - -; #X obj 283 753 * -1.5; #X obj 284 659 * 2.1; #X obj 284 682 * -1.7; #X obj 283 730 * 0.11; #X obj 9 334 3dp_push; #X obj 182 399 3dp_view transz; #X floatatom 282 369 5 0 0 0 - - -; #X obj 131 371 3dp_view transz; #X obj 231 338 * -1; #X msg 282 341 2; #X obj 564 401 s drawtorus; #X obj 564 374 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1; #X obj 674 496 s torusr1; #X floatatom 672 473 5 0 0 0 - - -; #X floatatom 667 419 5 0 0 0 - - -; #X obj 669 442 s torusr2; #X msg 564 349 1; #X obj 597 645 *; #X obj 59 126 3dp_push; #X obj 9 364 3dp_push; #X obj 9 437 3dp_view rotx; #X floatatom 96 416 5 0 0 0 - - -; #X obj 9 471 3dp_draw sphere 30 40; #X obj 9 593 3dp_snap; #X obj 473 487 / 1000; #X floatatom 473 461 5 0 0 0 - - -; #X obj 430 8 loadbang; #X obj 430 31 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 59 77 3dp_windowcontext; #X obj 59 274 3dp_push; #X obj 110 303 pdp_t p b; #X obj 9 307 pdp_t p b; #X msg 349 252 400; #X msg 311 252 -400; #X obj 342 287 +; #X msg 473 434 3; #X text 544 189 light source; #X obj 59 248 3dp_view scale 0.4; #X obj 640 157 s counter; #X obj 245 169 r counter; #X text 694 98 speed; #X obj 59 54 metro 20; #X obj 238 207 * 0.05; #X obj 9 570 spigot; #X obj 76 546 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 ; #X obj 612 122 + 1; #X text 28 521 texture feedback; #X text 486 751 "no-bots in no-sphere"; #X text 459 768 a double dance of 13 segments; #X text 549 734 ---; #X text 549 787 ---; #X obj 59 176 3dp_mouserotate; #X connect 0 0 108 1; #X connect 1 0 108 0; #X connect 2 0 108 0; #X connect 3 0 27 1; #X connect 4 0 85 0; #X connect 4 1 46 0; #X connect 5 0 46 1; #X connect 6 0 7 0; #X connect 8 0 112 0; #X connect 9 0 112 1; #X connect 10 0 47 0; #X connect 11 0 12 0; #X connect 12 0 13 0; #X connect 13 0 22 0; #X connect 14 0 11 0; #X connect 15 0 37 1; #X connect 16 0 38 1; #X connect 17 0 39 1; #X connect 18 0 40 1; #X connect 19 0 20 0; #X connect 20 0 21 0; #X connect 21 0 29 0; #X connect 22 0 19 0; #X connect 23 0 41 1; #X connect 24 0 28 1; #X connect 25 0 50 1; #X connect 26 0 104 0; #X connect 27 0 37 0; #X connect 27 0 14 1; #X connect 28 0 50 0; #X connect 28 0 20 1; #X connect 29 0 60 0; #X connect 30 0 31 1; #X connect 31 0 29 1; #X connect 31 0 68 0; #X connect 33 0 84 1; #X connect 34 0 35 0; #X connect 36 0 42 2; #X connect 36 0 43 2; #X connect 37 0 38 0; #X connect 37 0 11 1; #X connect 38 0 39 0; #X connect 38 0 12 1; #X connect 39 0 40 0; #X connect 39 0 13 1; #X connect 40 0 41 0; #X connect 40 0 22 1; #X connect 41 0 28 0; #X connect 41 0 19 1; #X connect 42 0 14 0; #X connect 44 0 34 0; #X connect 45 0 118 0; #X connect 46 0 6 0; #X connect 48 0 36 0; #X connect 48 0 102 0; #X connect 48 0 76 0; #X connect 48 0 83 0; #X connect 49 0 0 0; #X connect 50 0 31 0; #X connect 50 0 21 1; #X connect 51 0 6 1; #X connect 52 0 8 0; #X connect 53 0 27 0; #X connect 54 0 26 0; #X connect 55 0 54 1; #X connect 56 0 68 1; #X connect 57 0 58 0; #X connect 58 0 59 0; #X connect 59 0 65 0; #X connect 60 0 57 0; #X connect 61 0 69 1; #X connect 62 0 64 1; #X connect 63 0 70 1; #X connect 64 0 70 0; #X connect 64 0 58 1; #X connect 65 0 43 0; #X connect 66 0 67 1; #X connect 67 0 65 1; #X connect 68 0 69 0; #X connect 68 0 60 1; #X connect 69 0 64 0; #X connect 69 0 57 1; #X connect 70 0 67 0; #X connect 70 0 59 1; #X connect 71 0 86 0; #X connect 71 1 74 0; #X connect 72 0 42 0; #X connect 73 0 72 1; #X connect 73 0 75 0; #X connect 74 0 42 0; #X connect 75 0 74 1; #X connect 76 0 73 0; #X connect 78 0 77 0; #X connect 80 0 79 0; #X connect 81 0 82 0; #X connect 83 0 78 0; #X connect 84 0 32 0; #X connect 85 0 45 0; #X connect 86 0 87 0; #X connect 87 0 89 0; #X connect 88 0 87 1; #X connect 89 0 110 0; #X connect 90 1 89 1; #X connect 91 0 33 0; #X connect 92 0 91 0; #X connect 93 0 94 0; #X connect 94 0 1 0; #X connect 94 0 48 0; #X connect 95 0 4 0; #X connect 95 1 118 1; #X connect 96 0 98 0; #X connect 96 1 97 0; #X connect 97 0 72 0; #X connect 97 1 100 0; #X connect 98 0 71 0; #X connect 98 1 99 0; #X connect 99 0 101 0; #X connect 100 0 101 0; #X connect 101 0 53 0; #X connect 102 0 92 0; #X connect 102 0 44 0; #X connect 104 0 96 0; #X connect 106 0 109 0; #X connect 108 0 95 0; #X connect 108 0 8 0; #X connect 109 0 26 1; #X connect 110 0 90 0; #X connect 111 0 110 1; #X connect 112 0 8 1; #X connect 112 0 84 0; #X connect 112 0 101 1; #X connect 112 0 105 0; #X connect 118 0 54 0;
--- NEW FILE: example13.pd --- #N canvas 478 168 669 751 10; #X obj 55 68 metro 40; #X obj 55 38 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 ; #X obj 55 110 3dp_windowcontext; #X obj 262 479 3dp_snap; #X obj 355 270 3dp_light 0; #X obj 355 242 3dp_view transxyz 5 5 0; #X obj 204 224 3dp_push; #X obj 262 447 3dp_draw sphere 7 10 10; #X obj 204 258 3dp_mouserotate; #X obj 262 411 3dp_draw icosa 1; #X obj 204 340 3dp_color; #X obj 262 385 3dp_view scale 1; #X floatatom 369 356 5 0 0; #N canvas 0 0 291 420 coord_to_color 0; #X obj 97 85 route drag; #X obj 97 147 *; #X obj 134 146 *; #X obj 97 174 +; #X obj 97 281 sqrt; #X obj 97 225 - 1; #X obj 97 249 * -1; #X obj 97 114 unpack 0 0; #X obj 98 45 inlet; #X obj 53 337 outlet; #X obj 181 332 outlet; #X obj 116 336 outlet; #X connect 0 0 7 0; #X connect 1 0 3 0; #X connect 2 0 3 1; #X connect 3 0 5 0; #X connect 4 0 11 0; #X connect 5 0 6 0; #X connect 6 0 4 0; #X connect 7 0 1 1; #X connect 7 0 1 0; #X connect 7 0 9 0; #X connect 7 1 2 1; #X connect 7 1 2 0; #X connect 7 1 10 0; #X connect 8 0 0 0; #X restore 223 303 pd coord_to_color; #X obj 372 335 hsl 128 15 1 3 0 1 empty empty empty -2 -6 0 8 -262144 -1 -1 7900 1; #X obj 204 194 3dp_draw clear; #X text 209 658 <- stretch the texture to cover the entire window (click for info); #X text 119 13 fixed resolution processing (independent of the display window size) using multipass rendering; #X floatatom 210 631 5 0 0; #X obj 55 658 3dp_display_texture; #X text 338 480 <- snap the result to a texture; #X text 228 154 <- create a subcontext to do some drawing; #X text 402 76 see also; #X obj 405 97 3dp_fixedsizewindowcontext 64 64; #X obj 55 155 3dp_subcontext 320 240; #X connect 0 0 2 0; #X connect 1 0 0 0; #X connect 2 0 24 0; #X connect 2 1 13 0; #X connect 2 1 8 1; #X connect 3 1 7 1; #X connect 3 1 19 1; #X connect 5 0 4 0; #X connect 6 0 8 0; #X connect 6 1 5 0; #X connect 7 0 3 0; #X connect 8 0 10 0; #X connect 9 0 7 0; #X connect 10 1 11 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 13 1 10 2; #X connect 13 2 10 3; #X connect 14 0 12 0; #X connect 15 0 6 0; #X connect 18 0 19 2; #X connect 24 0 19 0; #X connect 24 1 15 0;
--- NEW FILE: example15.pd --- #N canvas 269 234 933 697 10; #X obj 67 46 metro 40; #X obj 67 23 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 ; #X obj 67 224 3dp_blend; #X obj 176 673 3dp_view transxyz; #X msg 260 342 reset; #X obj 197 497 *; #X obj 304 498 *; #X obj 272 218 vsl 15 30 0 1 0 1 empty empty empty 0 -8 0 8 -262144 -1 -1 1000 1; #X obj 314 218 vsl 15 30 0 1 0 1 empty empty empty 0 -8 0 8 -262144 -1 -1 0 1; #X obj 293 218 vsl 15 30 0 1 0 1 empty empty empty 0 -8 0 8 -262144 -1 -1 100 1; #X obj 335 218 vsl 15 30 0 1 0 1 empty empty empty 0 -8 0 8 -262144 -1 -1 200 1; #X obj 125 304 3dp_push; #X obj 67 119 3dp_mouserotate; #X obj 67 176 3dp_view scale 1; #X floatatom 241 145 5 0 0 0 - - -; #X obj 244 125 hsl 128 15 0.2 5 1 1 empty empty empty -2 -6 0 8 -262144 -1 -1 3800 1; #X obj 523 456 hsl 128 15 0.01 2 1 1 empty empty empty -2 -6 0 8 -262144 -1 -1 7900 1; #X obj 67 251 3dp_color; #X obj 402 231 route press3; #X text 211 304 <- remove 3dp_push object to accumulate the translations ; #X obj 197 392 randomwalk2D 100; #X obj 125 275 3dp_for 100; #X text 285 185 R G B I; #X obj 197 533 smoothupdate 100; #X obj 304 567 smoothupdate 100; #X obj 524 490 hsl 128 15 0.01 1 1 1 empty empty empty -2 -6 0 8 -262144 -1 -1 1300 1; #X obj 67 93 3dp_push; #X obj 476 111 3dp_view transz 5; #X obj 476 171 3dp_light; #X obj 219 351 s i; #X obj 250 511 r i; #X obj 357 543 r i; #X obj 419 716 smoothupdate 100; #X obj 472 692 r i; #X obj 197 325 t f f b; #X obj 419 639 random 100; #X obj 419 662 - 50; #X obj 529 675 hsl 128 15 0.01 1 1 1 empty empty empty -2 -6 0 8 -262144 -1 -1 600 1; #X obj 419 688 / 10; #X msg 418 424 reset; #X obj 148 201 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1; #X obj 67 200 pdp_route; #X obj 176 765 3dp_draw torus 1 2 5 5; #X obj 176 709 pdp_route; #X obj 265 711 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1; #X obj 194 741 3dp_draw cube 2; #X text 315 344 <- reset random walk; #X text 532 554 <- reset smoothed points to origin; #X text 227 13 like example14 but with coordinate smoothing and lighting ; #X text 505 246 <- route mouse buttons; #X obj 481 265 route press2; #X text 666 453 <- walk radius; #X text 667 488 <- walk smoothing; #X obj 67 70 3dp_fixedsizewindowcontext 320 240; #X floatatom 199 250 5 0 0 0 - - -; #X connect 0 0 53 0; #X connect 1 0 0 0; #X connect 2 0 17 0; #X connect 3 0 43 0; #X connect 4 0 20 0; #X connect 5 0 23 0; #X connect 6 0 24 0; #X connect 7 0 17 1; #X connect 8 0 17 3; #X connect 9 0 17 2; #X connect 10 0 17 4; #X connect 11 1 3 0; #X connect 12 0 13 0; #X connect 13 0 41 0; #X connect 14 0 13 1; #X connect 15 0 14 0; #X connect 16 0 6 1; #X connect 16 0 5 1; #X connect 17 1 21 0; #X connect 18 0 4 0; #X connect 18 1 50 0; #X connect 20 0 5 0; #X connect 20 1 6 0; #X connect 21 0 11 0; #X connect 21 1 34 0; #X connect 23 0 3 1; #X connect 24 0 3 2; #X connect 25 0 23 2; #X connect 25 0 24 2; #X connect 26 0 12 0; #X connect 26 1 27 0; #X connect 27 0 28 0; #X connect 30 0 23 1; #X connect 31 0 24 1; #X connect 32 0 3 3; #X connect 33 0 32 1; #X connect 34 0 20 0; #X connect 34 1 29 0; #X connect 34 2 35 0; #X connect 35 0 36 0; #X connect 36 0 38 0; #X connect 37 0 32 2; #X connect 38 0 32 0; #X connect 39 0 23 0; #X connect 39 0 24 0; #X connect 39 0 32 0; #X connect 40 0 41 1; #X connect 41 0 2 0; #X connect 41 1 17 0; #X connect 43 0 42 0; #X connect 43 1 45 0; #X connect 44 0 43 1; #X connect 50 0 39 0; #X connect 53 0 26 0; #X connect 53 1 12 1; #X connect 53 1 18 0; #X connect 54 0 21 1;
--- NEW FILE: example16.pd --- #N canvas 196 0 772 525 10; #X obj 57 25 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 ; #X obj 57 153 3dp_blend; #X floatatom 101 237 5 0 0 0 - - -; #X floatatom 149 237 5 0 0 0 - - -; #X floatatom 199 236 5 0 0 0 - - -; #X floatatom 247 236 5 0 0 0 - - -; #X obj 167 364 3dp_push; #X obj 218 434 3dp_view transxyz; #X msg 276 354 normal; #X obj 422 255 f; #X floatatom 484 264 5 0 0 0 - - -; #X msg 422 220 0; #X obj 57 177 pdp_t p b; #X obj 392 185 t b b; #X msg 591 238 0.2; #X msg 484 239 0; #X obj 57 72 3dp_windowcontext; #X obj 392 112 route press3; #X obj 57 49 metro 40; #X obj 167 328 3dp_for 100; #X obj 227 125 3dp_view transz 5; #X obj 227 159 3dp_light; #X obj 57 96 3dp_push; #X obj 422 289 + 0.2; #X obj 497 112 loadbang; #X msg 519 238 0.01; #N canvas 0 0 577 190 coordinates 0; #X obj 51 100 *; #X obj 51 72 elbat 100; #X obj 165 99 *; #X obj 165 71 elbat 100; #X obj 276 97 *; #X obj 276 69 elbat 100; #X obj 51 19 inlet; #X obj 125 18 inlet; #X text 354 69 <- table read abstraction; #X obj 51 130 outlet; #X obj 165 127 outlet; #X obj 276 125 outlet; #X connect 0 0 9 0; #X connect 1 0 0 0; #X connect 2 0 10 0; #X connect 3 0 2 0; #X connect 4 0 11 0; #X connect 5 0 4 0; #X connect 6 0 1 0; #X connect 6 0 3 0; #X connect 6 0 5 0; #X connect 7 0 0 1; #X connect 7 0 2 1; #X connect 7 0 4 1; #X restore 239 403 pd coordinates; #X msg 392 136 bang; #X text 459 219 <- reset scaling to 0 (infinite density); #X text 469 290 <- increment scaling for each new frame; #X text 340 354 <- compute a new normal distributed set of points; #X text 506 371 (velocity vectors); #X text 545 264 <- diffusion speed; #X msg 559 238 0.1; #X text 182 12 explosion using 100 spheres with normal distributed velocity vectors; #X floatatom 367 441 5 0 0 0 - - -; #X obj 57 125 3dp_mouserotate; #X obj 57 278 3dp_color 0.1 0.1 0.1 0.27; #X obj 218 478 3dp_draw sphere 1 8 8; #X connect 0 0 18 0; #X connect 1 0 12 0; #X connect 2 0 37 1; #X connect 3 0 37 2; #X connect 4 0 37 3; #X connect 5 0 37 4; #X connect 6 1 7 0; #X connect 7 0 38 0; #X connect 8 0 26 0; #X connect 9 0 23 0; #X connect 10 0 23 1; #X connect 11 0 9 0; #X connect 12 0 37 0; #X connect 12 1 9 0; #X connect 13 0 8 0; #X connect 13 1 11 0; #X connect 14 0 10 0; #X connect 15 0 10 0; #X connect 16 0 22 0; #X connect 16 1 17 0; #X connect 16 1 36 1; #X connect 17 0 27 0; #X connect 18 0 16 0; #X connect 19 0 6 0; #X connect 19 1 26 0; #X connect 20 0 21 0; #X connect 22 0 36 0; #X connect 22 1 20 0; #X connect 23 0 9 1; #X connect 23 0 26 1; #X connect 24 0 13 0; #X connect 25 0 10 0; #X connect 26 0 7 1; #X connect 26 1 7 2; #X connect 26 2 7 3; #X connect 27 0 13 0; #X connect 33 0 10 0; #X connect 35 0 38 2; #X connect 36 0 1 0; #X connect 37 1 19 0;