#N canvas 214 26 783 642 10;
#X obj 270 256 #greyscale_to_rgb;
#X obj 167 66 loadbang;
#X obj 107 85 t a a;
#X obj 266 412 print;
#X obj 10 49 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1;
#N canvas 611 335 413 236 lighting 0;
#X obj 56 203 outlet;
#X obj 17 9 inlet;
#X text 91 65 produce red/cyan from horiz differences;
#X text 64 123 produce white/black from vertical differences;
#X obj 56 177 # +;
#X obj 108 10 #dim;
#X obj 140 10 #export_list;
#X obj 56 9 t a a;
#X obj 56 49 t a a;
#X msg 141 30 \$1 \$2;
#X obj 56 29 #redim ();
#X obj 86 82 #convolve (1 2 #) \, op ignore \, fold inv+;
#X obj 56 139 #convolve (2 1 #) \, op ignore \, fold inv+;
#X obj 86 101 #outer & (-1 0 0);
#X obj 56 158 #outer & (-1 -1 0);
#X connect 1 0 7 0;
#X connect 4 0 0 0;
#X connect 5 0 6 0;
#X connect 6 0 9 0;
#X connect 7 0 10 0;
#X connect 7 1 5 0;
#X connect 8 0 12 0;
#X connect 8 1 11 0;
#X connect 9 0 10 1;
#X connect 10 0 8 0;
#X connect 11 0 13 0;
#X connect 12 0 14 0;
#X connect 13 0 4 1;
#X connect 14 0 4 0;
#X restore 260 277 pd lighting;
#X obj 228 468 # / 2;
#X msg 107 104 \$1 \$2 1 # 0;
#N canvas 137 251 392 303 finger 0;
#X obj 149 39 #redim ( 4 2 );
#X obj 71 16 inlet;
#X obj 149 20 inlet;
#X obj 71 217 outlet;
#X obj 149 158 # +;
#X obj 177 157 # *;
#X msg 177 137 0 0 0 1 1 1 1 0;
#X obj 193 79 inlet size;
#X text 291 137 square or rect;
#X obj 177 112 #finished;
#X obj 70 195 #draw_polygon put (4000);
#X connect 0 0 4 0;
#X connect 1 0 10 0;
#X connect 2 0 0 0;
#X connect 4 0 10 2;
#X connect 5 0 4 1;
#X connect 6 0 5 0;
#X connect 7 0 9 0;
#X connect 7 0 5 1;
#X connect 9 0 6 0;
#X connect 10 0 3 0;
#X restore 227 564 pd finger;
#X obj 141 85 s size;
#X obj 260 353 #scale_by 2;
#X obj 8 243 #store;
#N canvas 243 147 463 307 wave 0;
#X obj 26 20 inlet;
#X obj 23 293 outlet;
#X text 65 205 time differential;
#X text 81 50 space differential: (d/dx)^2 + (d/dy)^2;
#X text 71 8 Recurrence equation for propagation of oscillations;
#X obj 26 39 t a a;
#X obj 207 147 outlet blah;
#X obj 207 125 inlet blah;
#X obj 23 205 # -;
#X obj 23 225 # *>>8 252;
#X obj 20 250 # min 30000;
#X obj 20 270 # max -30000;
#X obj 56 82 #convolve (3 3 # 1 4 1 4 12 4) \, seed 8;
#X obj 56 101 # >> 4;
#X connect 0 0 5 0;
#X connect 5 0 8 1;
#X connect 5 1 12 0;
#X connect 7 0 8 0;
#X connect 8 0 9 0;
#X connect 9 0 10 0;
#X connect 10 0 11 0;
#X connect 11 0 1 0;
#X connect 12 0 13 0;
#X connect 13 0 6 0;
#X restore 8 281 pd wave equation;
#X obj 182 564 t a;
#X obj 107 123 t a;
#X obj 270 232 # >> 1;
#X obj 36 85 s metro;
#X text 491 65 (Best complemented with a touchscreen);
#X obj 366 159 vradio 15 1 0 3 empty empty empty 0 -6 0 8 -262144 -258699
-1 0;
#X text 384 174 height greys;
#X obj 318 96 vradio 15 1 0 3 empty empty empty 0 -6 0 8 -262144 -258699
-1 0;
#X text 336 95 plain;
#X text 336 111 line-art;
#X text 334 46 smooth;
#X obj 317 46 vradio 15 1 0 2 empty empty empty 0 -6 0 8 -262144 -258699
-1 0;
#X text 335 60 raw;
#X obj 442 418 hradio 18 1 1 4 empty empty _1__2__3__4_ 0 -4 0 8 -262144
-258699 -1 0;
#X text 440 397 scale by...;
#X obj 442 438 + 1;
#X obj 573 105 loadbang;
#X obj 573 276 spigot;
#X obj 620 277 tgl 15 0 empty empty empty 18 8 0 8 -241291 -1 -62784
0 1;
#X obj 573 256 r metro;
#N canvas 433 107 365 432 line-art 0;
#X obj 32 123 # << 8;
#X obj 32 37 inlet;
#X obj 34 256 outlet;
#X text 146 31 double-thresholding;
#X text 146 114 else becomes 0;
#X obj 32 82 # min 1;
#X obj 32 103 # max -1;
#X obj 32 172 # >> 2;
#X obj 31 154 #convolve (3 1 # 1 2 1);
#X obj 33 193 #convolve (1 3 # 1 2 1);
#X obj 35 215 # >> 2;
#X obj 32 60 # / 5;
#X text 146 85 < -5 becomes -256;
#X text 146 100 > +5 becomes +256;
#X connect 0 0 8 0;
#X connect 1 0 11 0;
#X connect 5 0 6 0;
#X connect 6 0 0 0;
#X connect 7 0 9 0;
#X connect 8 0 7 0;
#X connect 9 0 10 0;
#X connect 10 0 2 0;
#X connect 11 0 5 0;
#X restore 281 182 pd line-art;
#X text 628 129 Background colour;
#X text 637 277 enable video;
#X text 382 159 four-colour emboss;
#X obj 345 492 tgl 15 1 empty empty empty 0 -6 0 8 -241291 -1 -1 0
1;
#X obj 298 472 r metro;
#X text 362 491 rain;
#X obj 260 97 # >> 2;
#X text 388 36 Originally made for Alexandre Castonguay's "DIGITALE"
;
#X text 505 50 But suitable for a lot more uses :-);
#X msg 573 124 3 # 128;
#X obj 573 143 #color;
#X obj 260 59 shunt 2;
#X obj 369 548 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10
-262131 -1 -1 1 256;
#X obj 369 562 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10
-262131 -1 -1 1 256;
#X obj 260 315 # +;
#X obj 397 364 #store;
#X obj 421 296 shunt 2;
#X obj 477 291 vradio 15 1 0 2 empty empty empty 0 -6 0 8 -262144 -258699
-1 0;
#X text 495 290 plain;
#X text 495 307 refraction;
#X obj 260 296 t a;
#N canvas 203 363 443 300 heightmap2indexmap 0;
#X obj 48 220 outlet;
#X obj 9 8 inlet;
#X obj 48 143 # +;
#X obj 100 9 #dim;
#X obj 132 9 #export_list;
#X obj 48 8 t a a;
#X obj 48 48 t a a;
#X msg 132 28 \$1 \$2;
#X obj 48 201 # +;
#X obj 90 181 loadbang;
#X obj 73 181 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 48 162 # >> 1;
#X obj 78 67 #convolve (1 2 #) \, op ignore \, fold inv+;
#X obj 78 86 #outer & (-1 0);
#X obj 48 105 #convolve (2 1 #) \, op ignore \, fold inv+;
#X obj 48 124 #outer & (0 -1);
#X obj 73 201 #for (0 0) (240 320) (1 1);
#X obj 48 28 #redim ();
#X connect 1 0 5 0;
#X connect 2 0 11 0;
#X connect 3 0 4 0;
#X connect 4 0 7 0;
#X connect 5 0 17 0;
#X connect 5 1 3 0;
#X connect 6 0 14 0;
#X connect 6 1 12 0;
#X connect 7 0 17 1;
#X connect 8 0 0 0;
#X connect 9 0 16 0;
#X connect 10 0 16 0;
#X connect 11 0 8 0;
#X connect 12 0 13 0;
#X connect 13 0 2 1;
#X connect 14 0 15 0;
#X connect 15 0 2 0;
#X connect 16 0 8 1;
#X connect 17 0 6 0;
#X restore 397 345 pd heightmap2indexmap;
#X obj -8 82 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 -1
;
#X obj 397 326 spigot;
#X text 384 189 no reflection;
#X obj 260 201 shunt 3;
#X obj 260 182 t a;
#X obj 318 232 # put 0;
#X obj 182 545 shunt 2;
#X obj 226 521 shunt 2;
#X obj 10 66 metro 33.3667;
#X obj 8 262 shunt 2;
#X text 78 263 freeze time;
#X obj 61 263 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0 1
;
#X obj 132 123 r feedback;
#X obj 182 583 s feedback;
#X obj 8 303 t a;
#X obj -13 5 cnv 15 780 30 empty empty empty 20 12 0 14 -233017 -66577
0;
#X obj -15 611 cnv 15 780 30 empty empty empty 20 12 0 14 -200249 -66577
0;
#X text -7 619 GridFlow 0.8.0;
#X text -7 619 GridFlow 0.8.0;
#X text 0 4 waves.pd;
#X obj 555 276 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1
-1;
#X obj 573 315 spigot;
#X obj 620 316 tgl 15 0 empty empty empty 18 8 0 8 -241291 -1 -62784
0 1;
#X text 637 315 test camera output;
#X obj 10 85 t b;
#X obj 298 491 spigot;
#X obj 620 334 sel 0 1;
#X msg 642 353 open window;
#X obj 573 334 #out;
#X msg 620 372 close;
#X obj 266 393 fps detailed \, period 2;
#X obj 574 226 #in;
#X obj 344 510 r size;
#X obj 298 510 #store;
#X obj 298 529 # rand;
#X obj 260 372 #out window;
#X obj 260 334 #clip;
#X obj 260 78 #convolve (2 2 #) \, op ignore;
#X obj 369 581 #pack 2;
#X text 0 18 Copyright 2003 \, 2004 \, 2005 Mathieu Bouchard;
#X obj 260 431 #mouse \, ...;
#N canvas 123 224 450 366 doodle 0;
#X obj 26 17 inlet wave;
#X obj 23 258 outlet wave;
#X obj 171 29 inlet tog;
#X obj 306 36 inlet pos;
#X obj 139 9 r metro;
#X obj 138 57 spigot;
#X obj 231 202 # +;
#X obj 137 83 t b b;
#X msg 219 123 4 2 # 0 0 0 1 1 1 1 0;
#X obj 224 158 # * 8;
#X obj 127 334 outlet rgb;
#X obj 347 78 inlet mode;
#X obj 347 221 #redim (1);
#X obj 130 238 #draw_polygon put (0);
#X obj 24 69 # *>>8;
#X obj 129 290 #inner (1 3 # 0 1 1);
#X obj 141 267 # inv+ 256;
#X obj 364 191 # inv+ 256;
#X obj 46 107 loadbang;
#X obj 347 159 # * 256;
#X obj 48 146 #store (240 320 1 # 256);
#X connect 0 0 14 0;
#X connect 2 0 5 1;
#X connect 3 0 6 1;
#X connect 4 0 5 0;
#X connect 5 0 7 0;
#X connect 6 0 13 2;
#X connect 7 0 20 0;
#X connect 7 1 8 0;
#X connect 8 0 9 0;
#X connect 9 0 6 0;
#X connect 11 0 19 0;
#X connect 12 0 13 1;
#X connect 13 0 16 0;
#X connect 13 0 20 1;
#X connect 14 0 1 0;
#X connect 15 0 10 0;
#X connect 16 0 15 0;
#X connect 17 0 12 0;
#X connect 18 0 20 0;
#X connect 19 0 12 0;
#X connect 20 0 13 0;
#X connect 20 0 14 1;
#X restore 128 282 pd doodle;
#X obj 197 282 # +;
#X msg 574 207 load g001.jpg;
#X obj 90 178 route position;
#X msg 90 197 \$3;
#X obj 90 216 & 1;
#X msg 107 66 240 320;
#X obj 573 296 #camera;
#X obj 260 116 shunt 3;
#X obj 302 142 # ** 3;
#X text 336 125 cubit;
#X obj 302 161 # >> 10;
#X connect 0 0 54 0;
#X connect 1 0 103 0;
#X connect 2 0 7 0;
#X connect 2 1 9 0;
#X connect 4 0 64 0;
#X connect 5 0 54 0;
#X connect 6 0 8 1;
#X connect 6 0 97 2;
#X connect 7 0 14 0;
#X connect 8 0 13 0;
#X connect 10 0 91 0;
#X connect 11 0 65 0;
#X connect 12 0 70 0;
#X connect 12 1 97 0;
#X connect 13 0 69 0;
#X connect 14 0 11 1;
#X connect 14 0 45 0;
#X connect 15 0 0 0;
#X connect 18 0 59 1;
#X connect 20 0 105 1;
#X connect 24 0 45 1;
#X connect 26 0 28 0;
#X connect 28 0 10 1;
#X connect 28 0 6 1;
#X connect 29 0 43 0;
#X connect 30 0 104 0;
#X connect 31 0 30 1;
#X connect 32 0 30 0;
#X connect 33 0 60 0;
#X connect 37 0 62 1;
#X connect 37 0 63 1;
#X connect 37 0 81 1;
#X connect 38 0 81 0;
#X connect 40 0 105 0;
#X connect 43 0 44 0;
#X connect 44 0 50 0;
#X connect 45 0 93 0;
#X connect 45 1 105 0;
#X connect 46 0 94 0;
#X connect 47 0 94 1;
#X connect 48 0 98 0;
#X connect 49 0 48 1;
#X connect 50 0 48 1;
#X connect 50 1 49 1;
#X connect 51 0 50 1;
#X connect 51 0 57 1;
#X connect 54 0 48 0;
#X connect 55 0 49 0;
#X connect 56 0 80 0;
#X connect 57 0 55 0;
#X connect 59 0 5 0;
#X connect 59 1 15 0;
#X connect 59 2 61 0;
#X connect 60 0 59 0;
#X connect 60 0 57 0;
#X connect 61 0 0 0;
#X connect 62 0 13 0;
#X connect 62 1 8 0;
#X connect 63 0 62 1;
#X connect 64 0 80 0;
#X connect 65 0 12 0;
#X connect 65 1 70 0;
#X connect 67 0 65 1;
#X connect 68 0 14 0;
#X connect 70 0 62 0;
#X connect 76 0 104 0;
#X connect 77 0 84 0;
#X connect 78 0 77 1;
#X connect 78 0 82 0;
#X connect 80 0 16 0;
#X connect 80 0 11 0;
#X connect 81 0 89 0;
#X connect 82 0 85 0;
#X connect 82 1 83 0;
#X connect 83 0 84 0;
#X connect 85 0 84 0;
#X connect 86 0 3 0;
#X connect 87 0 50 1;
#X connect 88 0 89 1;
#X connect 89 0 90 0;
#X connect 90 0 8 1;
#X connect 91 0 86 0;
#X connect 91 0 96 0;
#X connect 91 0 100 0;
#X connect 92 0 10 0;
#X connect 93 0 40 0;
#X connect 94 0 8 2;
#X connect 96 0 6 0;
#X connect 96 1 6 0;
#X connect 96 4 63 0;
#X connect 96 6 97 1;
#X connect 97 0 12 1;
#X connect 97 1 98 1;
#X connect 98 0 92 0;
#X connect 99 0 87 0;
#X connect 100 0 101 0;
#X connect 101 0 102 0;
#X connect 102 0 97 3;
#X connect 103 0 2 0;
#X connect 104 0 50 0;
#X connect 104 0 77 0;
#X connect 105 0 60 0;
#X connect 105 1 33 0;
#X connect 105 2 106 0;
#X connect 106 0 108 0;
#X connect 108 0 60 0;