#N canvas 608 0 588 612 10; #X obj 368 33 loadbang; #X obj 23 48 gemhead; #N canvas 610 247 578 360 GOL 0; #X text 48 122 this is the feedback loop; #X obj 143 50 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 161 49 for 0 10 1; #X obj 262 87 loadbang; #X obj 141 103 #store; #X obj 161 68 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 31 143 fork; #X text 179 68 next; #N canvas 0 0 450 210 game 0; #X obj 28 64 inlet matrix; #X obj 28 141 outlet matrix; #X text 18 14 this part at the left defines the rule of the game (this is my own rewriting of the rules. it is equivalent to the original but faster to compute.); #X obj 28 83 # << (b # 1); #X obj 28 122 # < (b # 3); #X obj 28 103 #convolve (3 3 b # 0 0 0 0 1) \, op >> \, seed (b # 251) ; #X connect 0 0 3 0; #X connect 3 0 5 0; #X connect 4 0 1 0; #X connect 5 0 4 0; #X restore 31 102 pd game of life; #X text 260 60 init with a random map; #X obj 5 329 cnv 15 780 30 empty empty empty 20 12 0 14 -200249 -66577 0; #X text 13 336 GridFlow 0.8.0; #X text 13 336 GridFlow 0.8.0; #X obj 7 5 cnv 15 780 30 empty empty empty 20 12 0 14 -233017 -66577 0; #X text 20 5 game_of_life.pd; #X text 20 18 Copyright 2001 Mathieu Bouchard; #X obj 262 165 # rand (b #); #X obj 262 184 # == (b # 0); #X obj 24 41 inlet metro; #X obj 22 69 route bang reset; #X obj 31 295 outlet RGB; #X obj 31 181 #cast i; #X obj 31 238 #clip; #X obj 41 257 #apply_colormap_channelwise; #X obj 207 239 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 31 200 # << 10; #X obj 234 238 #for 0 256; #X obj 234 257 #outer gamma (3 # 333 555 999); #X text 261 72 20% white dots; #X obj 31 162 #outer ignore (4 b #); #X obj 279 117 t b b; #X obj 31 276 #scale_by; #X msg 261 146 128 128 b # 5; #X obj 31 219 #fade (16 4 1 1); #X connect 1 0 2 0; #X connect 2 0 5 0; #X connect 3 0 30 0; #X connect 4 0 8 0; #X connect 5 0 4 0; #X connect 6 0 29 0; #X connect 6 1 4 1; #X connect 8 0 6 0; #X connect 16 0 17 0; #X connect 17 0 6 0; #X connect 18 0 19 0; #X connect 19 0 4 0; #X connect 19 1 32 0; #X connect 21 0 25 0; #X connect 22 0 31 0; #X connect 24 0 26 0; #X connect 25 0 33 0; #X connect 26 0 27 0; #X connect 27 0 23 1; #X connect 29 0 21 0; #X connect 30 0 32 0; #X connect 30 1 26 0; #X connect 31 0 20 0; #X connect 32 0 16 0; #X connect 33 0 22 0; #X restore 144 363 pd GOL; #X obj 127 278 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 1 1 ; #X msg 154 336 reset; #X obj 23 429 rotateXYZ; #X obj 32 406 #unpack 3; #X obj 32 349 # +; #X obj 57 349 t a; #X obj 32 368 #cast f; #X obj 32 387 # / (f # 100); #X floatatom 108 67 5 0 0 0 - - -; #X obj 76 48 bang; #X obj 108 48 fps \, period 5; #X obj 23 215 pix_texture; #X obj 285 486 #out window; #X obj 285 63 gemhead 74; #X obj 285 312 t a b; #X obj 360 133 vsl 15 128 0 512 0 0 empty empty empty 0 -8 0 8 -241291 -1 -1 3175 1; #X obj 375 133 vsl 15 128 0 512 0 0 empty empty empty 0 -8 0 8 -241291 -1 -1 3175 1; #X obj 414 133 vsl 15 128 0 512 0 0 empty empty empty 0 -8 0 8 -241291 -1 -1 6350 1; #X obj 429 133 vsl 15 128 0 512 0 0 empty empty empty 0 -8 0 8 -241291 -1 -1 6350 1; #X msg 324 312 snap; #X obj 360 110 #unpack; #X obj 413 110 #unpack; #X obj 285 364 pix_snap; #X obj 350 267 #pack; #X obj 404 267 #pack; #X msg 360 90 128 128; #X msg 413 91 256 256; #X obj 23 528 cube 4; #X obj 179 298 + 1; #X obj 154 317 sel 0; #X obj 154 298 f; #X msg 307 407 help; #X obj 407 289 #to_list; #X obj 347 289 #to_list; #X obj 23 196 #to_pix; #X obj 62 106 separator; #X obj 23 106 t a a; #X msg 368 52 create \, 1 \, lighting 1; #X msg 32 330 60 42 30; #X obj 144 277 metro 33.3667; #X floatatom 204 317 5 0 0 0 - - -; #N canvas 0 0 450 300 lighting 0; #X obj 22 28 inlet gem; #X obj 152 210 light; #X obj 282 210 light; #X obj 22 47 t a a a; #X obj 66 66 separator; #X obj 44 85 separator; #X obj 22 210 light; #X obj 133 251 loadbang; #X obj 22 191 translateXYZ 0 4 4; #X obj 152 191 translateXYZ 4 0 4; #X obj 282 191 translateXYZ 4 4 0; #X msg 61 210 1 0 0; #X msg 191 210 0 1 0; #X msg 321 210 0 0 1; #X connect 0 0 3 0; #X connect 3 0 8 0; #X connect 3 1 5 0; #X connect 3 2 4 0; #X connect 4 0 10 0; #X connect 5 0 9 0; #X connect 7 0 11 0; #X connect 7 0 12 0; #X connect 7 0 13 0; #X connect 8 0 6 0; #X connect 9 0 1 0; #X connect 10 0 2 0; #X connect 11 0 6 1; #X connect 12 0 1 1; #X connect 13 0 2 1; #X restore 62 125 pd lighting; #X obj 23 509 color 1 1 1; #X obj 144 382 # inv+ 255; #X obj 368 71 gemwin 29.97; #X obj 23 457 shunt; #X obj 62 458 tgl 15 0 empty empty empty 17 7 0 10 -24198 -1 -1 0 1 ; #N canvas 0 0 450 300 eight_cubes 0; #X obj 33 29 inlet gem; #X obj 33 48 t a a; #X obj 163 48 separator; #X obj 33 86 t a; #X obj 33 105 t a a; #X obj 163 105 separator; #X obj 33 143 t a; #X obj 33 162 t a a; #X obj 163 162 separator; #X obj 33 200 t a; #X obj 33 219 cube 2; #X obj 33 67 translateXYZ 4 0 0; #X obj 33 124 translateXYZ 0 4 0; #X obj 33 181 translateXYZ 0 0 4; #X obj 163 181 translateXYZ 0 0 -4; #X obj 163 124 translateXYZ 0 -4 0; #X obj 163 67 translateXYZ -4 0 0; #X connect 0 0 1 0; #X connect 1 0 11 0; #X connect 1 1 2 0; #X connect 2 0 16 0; #X connect 3 0 4 0; #X connect 4 0 12 0; #X connect 4 1 5 0; #X connect 5 0 15 0; #X connect 6 0 7 0; #X connect 7 0 13 0; #X connect 7 1 8 0; #X connect 8 0 14 0; #X connect 9 0 10 0; #X connect 11 0 3 0; #X connect 12 0 6 0; #X connect 13 0 9 0; #X connect 14 0 9 0; #X connect 15 0 6 0; #X connect 16 0 3 0; #X restore 53 476 pd eight_cubes; #X obj 285 452 #remap_image; #X obj 204 298 % 256; #X obj 398 452 % 32; #X obj 23 239 translateXYZ 0 0 -7; #X obj 285 427 #import_pix; #X obj 374 452 # ^; #X obj 0 0 doc_demo; #X connect 0 0 40 0; #X connect 0 0 28 0; #X connect 0 0 29 0; #X connect 1 0 12 0; #X connect 1 0 39 0; #X connect 2 0 46 0; #X connect 3 0 42 0; #X connect 4 0 2 0; #X connect 5 0 48 0; #X connect 6 0 5 1; #X connect 6 1 5 2; #X connect 6 2 5 3; #X connect 7 0 8 0; #X connect 7 0 9 0; #X connect 8 0 7 1; #X connect 9 0 10 0; #X connect 10 0 6 0; #X connect 12 0 13 0; #X connect 13 0 11 0; #X connect 14 0 54 0; #X connect 16 0 17 0; #X connect 17 0 25 0; #X connect 17 1 22 0; #X connect 18 0 26 0; #X connect 19 0 26 1; #X connect 20 0 27 0; #X connect 21 0 27 1; #X connect 22 0 25 0; #X connect 23 0 18 0; #X connect 23 1 19 0; #X connect 24 0 20 0; #X connect 24 1 21 0; #X connect 25 0 55 0; #X connect 26 0 36 0; #X connect 27 0 35 0; #X connect 28 0 23 0; #X connect 29 0 24 0; #X connect 31 0 52 0; #X connect 32 0 4 0; #X connect 33 0 31 0; #X connect 33 0 32 0; #X connect 34 0 55 0; #X connect 35 0 25 2; #X connect 36 0 25 1; #X connect 37 0 14 0; #X connect 38 0 44 0; #X connect 39 0 37 0; #X connect 39 1 38 0; #X connect 40 0 47 0; #X connect 41 0 7 0; #X connect 42 0 2 0; #X connect 42 0 33 0; #X connect 42 0 41 0; #X connect 45 0 30 0; #X connect 46 0 37 1; #X connect 48 0 45 0; #X connect 48 1 50 0; #X connect 49 0 48 1; #X connect 51 0 15 0; #X connect 51 1 56 0; #X connect 52 0 33 1; #X connect 52 0 43 0; #X connect 52 0 53 0; #X connect 53 0 56 1; #X connect 54 0 5 0; #X connect 55 0 51 0; #X connect 56 0 51 1;