aboutsummaryrefslogtreecommitdiff
path: root/externals/gridflow/pd_examples/sand.pd
diff options
context:
space:
mode:
Diffstat (limited to 'externals/gridflow/pd_examples/sand.pd')
-rw-r--r--externals/gridflow/pd_examples/sand.pd417
1 files changed, 417 insertions, 0 deletions
diff --git a/externals/gridflow/pd_examples/sand.pd b/externals/gridflow/pd_examples/sand.pd
new file mode 100644
index 00000000..42a0ed93
--- /dev/null
+++ b/externals/gridflow/pd_examples/sand.pd
@@ -0,0 +1,417 @@
+#N canvas 524 30 680 685 10;
+#X text 317 199 disable falling;
+#X obj 6 392 # min 255;
+#X obj 3 167 fork;
+#X obj 295 402 # != 0;
+#X obj 356 446 #fold +;
+#X obj 99 518 s position;
+#X obj 192 -31 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 1 1
+;
+#X obj 295 465 #export;
+#X obj 192 68 #store;
+#X obj 247 133 shunt 2;
+#N canvas 25 226 369 359 mouse 0;
+#X text 143 214 is there a click?;
+#X obj 44 114 != 0;
+#X text 112 256 coordinates;
+#X obj 19 8 inlet;
+#X text 56 9 #out's outlet 0;
+#X obj 44 93 >> 8;
+#X obj 65 237 listsublist 0 2;
+#X obj 16 31 route position;
+#X obj 94 214 outlet;
+#X obj 65 257 outlet;
+#X obj 16 214 shunt 2;
+#X obj 44 72 listelement 2;
+#X obj 16 51 t a a;
+#X connect 1 0 8 0;
+#X connect 1 0 10 1;
+#X connect 3 0 7 0;
+#X connect 5 0 1 0;
+#X connect 6 0 9 0;
+#X connect 7 0 12 0;
+#X connect 10 1 6 0;
+#X connect 11 0 5 0;
+#X connect 12 0 10 0;
+#X connect 12 1 11 0;
+#X restore 398 151 pd mouse click/drag;
+#X obj 358 152 # / 2;
+#X obj 295 423 #ravel;
+#X msg 11 142 100 100;
+#X obj 6 415 # max;
+#X obj 247 198 shunt 2;
+#X obj 26 187 s size;
+#X obj 295 444 #fold +;
+#X obj 454 112 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0
+1;
+#X obj 356 404 @! abs;
+#X obj 432 412 #export;
+#X obj 432 370 #ravel;
+#X obj 288 260 shunt 2;
+#X obj 301 199 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0
+1;
+#X obj 356 467 #export;
+#X obj 398 111 shunt 2;
+#X obj 6 348 #greyscale_to_rgb;
+#X obj 399 132 r position;
+#N canvas 504 75 496 430 falling 0;
+#X obj 42 147 # +;
+#X text 228 286 vertical falling;
+#X obj 70 327 # / 3;
+#X obj 138 25 inlet;
+#X text 179 25 Dim[rows \, columns \, {height}];
+#X obj 43 281 #store;
+#X obj 43 260 #finished;
+#X obj 69 168 # / 3;
+#X obj 70 306 # / 3;
+#X obj 42 168 # +;
+#X obj 43 306 # +;
+#X text 105 366 Dim[rows \, columns \, {height}];
+#X text 197 129 horizontal falling;
+#X obj 69 147 # / 3;
+#X obj 43 327 # +;
+#X obj 42 123 #store;
+#X obj 52 365 outlet;
+#X obj 42 104 #finished;
+#X obj 138 58 t a a;
+#X obj 133 218 t a a;
+#X obj 110 147 #convolve ( 1 2 # 1 1 0 ) \, fold inv+;
+#X obj 110 168 #convolve ( 1 3 # 1 1 0 ) \, fold inv+;
+#X obj 111 306 #convolve ( 2 1 # 1 1 ) \, fold inv+;
+#X obj 111 327 #convolve ( 3 1 # 1 1 0 ) \, fold inv+;
+#X connect 0 0 9 0;
+#X connect 2 0 14 1;
+#X connect 3 0 18 0;
+#X connect 5 0 10 0;
+#X connect 6 0 5 0;
+#X connect 7 0 9 1;
+#X connect 8 0 10 1;
+#X connect 9 0 19 0;
+#X connect 10 0 14 0;
+#X connect 13 0 0 1;
+#X connect 14 0 16 0;
+#X connect 15 0 0 0;
+#X connect 17 0 15 0;
+#X connect 18 0 17 0;
+#X connect 18 1 15 1;
+#X connect 18 1 20 0;
+#X connect 18 1 21 0;
+#X connect 19 0 6 0;
+#X connect 19 1 5 1;
+#X connect 19 1 22 0;
+#X connect 19 1 23 0;
+#X connect 20 0 13 0;
+#X connect 21 0 7 0;
+#X connect 22 0 8 0;
+#X connect 23 0 2 0;
+#X restore 247 218 pd falling sand;
+#X obj 6 465 #scale_by 2;
+#X obj 8 287 shunt 3;
+#X obj 6 540 print;
+#X obj 136 26 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1
+-1;
+#X text 253 -8 auto;
+#N canvas 292 75 480 513 falling 0;
+#X obj 105 177 # div 5;
+#X text 292 85 horizontal falling;
+#X obj 42 118 #store;
+#X obj 153 58 fork;
+#X obj 171 230 fork;
+#X obj 46 392 outlet;
+#X obj 42 147 # +;
+#X obj 46 307 # +;
+#X obj 46 281 #store;
+#X obj 42 91 #finished;
+#X obj 42 176 # +;
+#X obj 48 260 #finished;
+#X text 88 17 Dim[rows \, columns \, {height}];
+#X text 293 262 vertical falling;
+#X obj 106 336 # div 5;
+#X obj 102 148 # div 5;
+#X obj 46 336 # +;
+#X obj 103 307 # div 5;
+#X text 101 392 Dim[rows \, columns \, {height}];
+#X obj 47 17 inlet;
+#X obj 162 149 #convolve (1 2 # 1 1) \, fold inv+ \, seed -3;
+#X obj 166 177 #convolve (1 3 # 1 1 0) \, fold inv+ \, seed -3;
+#X obj 170 305 #convolve (2 1 # 1 1) \, fold inv+ \, seed -3;
+#X obj 171 335 #convolve (3 1 # 1 1 0) \, fold inv+ \, seed -3;
+#X connect 0 0 10 1;
+#X connect 2 0 6 0;
+#X connect 3 0 9 0;
+#X connect 3 1 2 1;
+#X connect 3 1 20 0;
+#X connect 3 1 21 0;
+#X connect 4 0 11 0;
+#X connect 4 1 8 1;
+#X connect 4 1 22 0;
+#X connect 4 1 23 0;
+#X connect 6 0 10 0;
+#X connect 7 0 16 0;
+#X connect 8 0 7 0;
+#X connect 9 0 2 0;
+#X connect 10 0 4 0;
+#X connect 11 0 8 0;
+#X connect 14 0 16 1;
+#X connect 15 0 6 1;
+#X connect 16 0 5 0;
+#X connect 17 0 7 1;
+#X connect 19 0 3 0;
+#X connect 20 0 15 0;
+#X connect 21 0 0 0;
+#X connect 22 0 17 0;
+#X connect 23 0 14 0;
+#X restore 292 238 pd falling sand ( 2 );
+#N canvas 525 58 536 584 finger 0;
+#X obj 192 7 inlet;
+#X obj 36 78 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 63 267 # / 20;
+#X obj 74 327 # *;
+#X obj 12 436 #store;
+#X obj 14 18 inlet;
+#X obj 73 309 #redim ( 64 64 1 );
+#X obj 279 51 loadbang;
+#X obj 13 38 fork;
+#X obj 63 247 #fold +;
+#X text 22 159 "dig" the sphere into the sand;
+#X text 240 104 compute a halfsphere;
+#X obj 192 29 # - 32;
+#X obj 63 225 #ravel;
+#N canvas 1 58 415 284 make 0;
+#X obj 28 129 #fold +;
+#X obj 28 66 # -;
+#X obj 28 108 @! sq;
+#X obj 28 45 #for ( -32 -32 ) ( 32 32 ) ( 1 1 );
+#X obj 28 171 outlet;
+#X obj 28 87 # << 2;
+#X obj 28 150 @! sqrt;
+#X text 63 21 bang;
+#X obj 27 20 inlet;
+#X text 98 92 make distance map;
+#X connect 0 0 6 0;
+#X connect 1 0 5 0;
+#X connect 2 0 0 0;
+#X connect 3 0 1 0;
+#X connect 5 0 2 0;
+#X connect 6 0 4 0;
+#X connect 8 0 3 0;
+#X restore 259 74 pd make distance map with center 32;
+#X obj 12 480 outlet;
+#X obj 260 53 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X text 83 293 find out how high the compensation torus should be;
+#X obj 73 349 # div 256;
+#X obj 36 58 route grid;
+#X obj 12 417 #finished;
+#X obj 13 206 t a a;
+#N canvas 669 471 315 202 halfsphere 0;
+#X obj 45 19 inlet distancemap;
+#X obj 45 143 outlet image;
+#X obj 46 102 @! sqrt;
+#X obj 46 122 #outer ignore ( 0 );
+#X obj 46 62 # inv+ 200;
+#X text 121 63 16 * radius^2;
+#X obj 46 41 @! sq;
+#X obj 46 82 # max 0;
+#X connect 0 0 6 0;
+#X connect 2 0 3 0;
+#X connect 3 0 1 0;
+#X connect 4 0 7 0;
+#X connect 6 0 4 0;
+#X connect 7 0 2 0;
+#X restore 126 120 pd halfsphere;
+#X obj 13 141 #draw_image - ( 1 1 1 # ) ( 0 0 );
+#X obj 12 457 #draw_image - ( 1 1 1 # ) ( 0 0 );
+#N canvas 0 0 323 279 torus 0;
+#X obj 59 26 inlet;
+#X obj 56 185 outlet;
+#X obj 57 97 # inv+ 200;
+#X obj 57 76 @! sq;
+#X text 102 54 toroidal radius;
+#X obj 57 162 #outer ignore ( 0 );
+#X obj 56 120 # max 0;
+#X text 138 99 16*radius^2;
+#X obj 57 141 @! sqrt;
+#X obj 57 56 # - 20;
+#X connect 0 0 9 0;
+#X connect 2 0 6 0;
+#X connect 3 0 2 0;
+#X connect 5 0 1 0;
+#X connect 6 0 8 0;
+#X connect 8 0 5 0;
+#X connect 9 0 3 0;
+#X restore 296 346 pd torus;
+#X text 65 475 put extra sand as a ring around the hole;
+#X connect 0 0 12 0;
+#X connect 1 0 16 0;
+#X connect 2 0 6 0;
+#X connect 3 0 18 0;
+#X connect 4 0 24 0;
+#X connect 5 0 8 0;
+#X connect 6 0 3 0;
+#X connect 7 0 14 0;
+#X connect 8 0 23 0;
+#X connect 8 1 19 0;
+#X connect 9 0 2 0;
+#X connect 12 0 23 2;
+#X connect 12 0 24 2;
+#X connect 13 0 9 0;
+#X connect 14 0 22 0;
+#X connect 14 0 25 0;
+#X connect 16 0 14 0;
+#X connect 18 0 24 1;
+#X connect 19 0 1 0;
+#X connect 20 0 4 0;
+#X connect 21 0 20 0;
+#X connect 21 1 13 0;
+#X connect 21 1 4 1;
+#X connect 22 0 23 1;
+#X connect 23 0 21 0;
+#X connect 24 0 15 0;
+#X connect 25 0 3 1;
+#X restore 290 152 pd finger;
+#X obj 342 376 # -;
+#X obj 356 425 #ravel;
+#X msg 3 118 240 320;
+#X obj 432 391 #fold +;
+#X obj 6 328 # + 128;
+#X obj 148 476 #greyscale_to_rgb;
+#X obj 303 134 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0
+1;
+#X text 362 263 enable stats;
+#X text 292 529 checking for conservation of amounts of sand;
+#X msg 3 212 \$1 \$2 1 # 0;
+#X text 33 159 set size / reset;
+#N canvas 56 229 441 265 lighting 0;
+#X obj 27 209 outlet;
+#X obj 27 180 # +;
+#X obj 17 9 inlet;
+#X obj 99 142 #convolve ( 2 1 # 1 1 ) \, op inv+;
+#X obj 100 65 #convolve ( 1 2 # 1 1 ) \, op inv+;
+#X obj 103 39 r size;
+#X obj 27 39 #redim ( );
+#X obj 27 79 #finished;
+#X obj 27 120 #store;
+#X obj 25 149 # + 128;
+#X obj 27 59 t a a;
+#X text 163 47 colourize the horizontal differences;
+#X text 113 123 colourize the vertical differences;
+#X obj 100 86 #outer & ( -1 0 0 );
+#X obj 99 164 #outer & ( -1 -1 0 );
+#X connect 1 0 0 0;
+#X connect 2 0 6 0;
+#X connect 3 0 14 0;
+#X connect 4 0 13 0;
+#X connect 5 0 6 1;
+#X connect 6 0 10 0;
+#X connect 7 0 8 0;
+#X connect 8 0 9 0;
+#X connect 9 0 1 0;
+#X connect 10 0 7 0;
+#X connect 10 1 4 0;
+#X connect 10 1 3 0;
+#X connect 13 0 8 1;
+#X connect 14 0 1 1;
+#X restore 151 355 pd lighting;
+#X obj 6 518 fps detailed;
+#X obj 344 262 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0
+1;
+#X text 152 26 step;
+#X obj 71 253 vradio 15 1 0 3 empty empty empty 0 -6 0 8 -241291 -1
+-1 0;
+#X obj 6 486 #out window;
+#X obj 295 508 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10
+-262144 -1 -1 0 256;
+#X obj 356 508 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10
+-262144 -1 -1 0 256;
+#X obj 432 508 nbx 8 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10
+-262144 -1 -1 0 256;
+#X text 90 268 differential;
+#X text 89 253 heightmap;
+#X text 89 284 topographic;
+#X obj 152 68 t a a;
+#X obj 247 260 t a a;
+#X obj 149 457 # * 255;
+#X obj 150 437 # >= 6;
+#X obj 150 416 # & 7;
+#X obj 2 97 loadbang;
+#X text 470 112 disable finger;
+#X obj 332 354 t a a;
+#X obj 6 309 # << 2;
+#X obj 151 334 # << 4;
+#X obj 192 -8 metro 20;
+#X obj -15 569 cnv 15 680 30 empty empty empty 20 12 0 14 -200249 -66577
+0;
+#X text -7 576 GridFlow 0.8.0;
+#X text -7 576 GridFlow 0.8.0;
+#X obj -13 -85 cnv 15 680 30 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X text 0 -72 Copyright 2002 Mathieu Bouchard;
+#X text 0 -85 sand.pd;
+#X connect 1 0 14 0;
+#X connect 2 0 45 0;
+#X connect 2 1 16 0;
+#X connect 3 0 12 0;
+#X connect 4 0 24 0;
+#X connect 6 0 69 0;
+#X connect 7 0 53 0;
+#X connect 8 0 9 0;
+#X connect 9 0 15 0;
+#X connect 9 1 35 0;
+#X connect 10 0 11 0;
+#X connect 10 1 25 0;
+#X connect 11 0 35 1;
+#X connect 12 0 17 0;
+#X connect 13 0 2 0;
+#X connect 14 0 29 0;
+#X connect 15 0 28 0;
+#X connect 15 1 60 0;
+#X connect 17 0 7 0;
+#X connect 18 0 25 1;
+#X connect 19 0 37 0;
+#X connect 20 0 55 0;
+#X connect 21 0 39 0;
+#X connect 22 1 21 0;
+#X connect 22 1 66 0;
+#X connect 23 0 15 1;
+#X connect 24 0 54 0;
+#X connect 25 0 9 1;
+#X connect 26 0 1 0;
+#X connect 27 0 10 0;
+#X connect 28 0 60 0;
+#X connect 29 0 52 0;
+#X connect 30 0 67 0;
+#X connect 30 1 68 0;
+#X connect 30 2 63 0;
+#X connect 32 0 8 0;
+#X connect 34 0 60 0;
+#X connect 35 0 15 0;
+#X connect 36 0 19 0;
+#X connect 36 0 3 0;
+#X connect 37 0 4 0;
+#X connect 38 0 2 0;
+#X connect 39 0 20 0;
+#X connect 40 0 26 0;
+#X connect 41 0 29 0;
+#X connect 42 0 9 1;
+#X connect 45 0 59 0;
+#X connect 47 0 1 0;
+#X connect 48 0 31 0;
+#X connect 49 0 22 1;
+#X connect 51 0 30 1;
+#X connect 52 0 48 0;
+#X connect 52 0 5 0;
+#X connect 59 0 30 0;
+#X connect 59 1 8 1;
+#X connect 60 0 59 0;
+#X connect 60 1 22 0;
+#X connect 61 0 41 0;
+#X connect 62 0 61 0;
+#X connect 63 0 62 0;
+#X connect 64 0 38 0;
+#X connect 66 0 36 1;
+#X connect 66 1 36 0;
+#X connect 67 0 40 0;
+#X connect 68 0 47 0;
+#X connect 69 0 8 0;