aboutsummaryrefslogtreecommitdiff
path: root/packages/noncvs/windows/extra/Gem/examples/13.recursion/06.breaking_symmetry.pd
diff options
context:
space:
mode:
Diffstat (limited to 'packages/noncvs/windows/extra/Gem/examples/13.recursion/06.breaking_symmetry.pd')
-rw-r--r--packages/noncvs/windows/extra/Gem/examples/13.recursion/06.breaking_symmetry.pd768
1 files changed, 384 insertions, 384 deletions
diff --git a/packages/noncvs/windows/extra/Gem/examples/13.recursion/06.breaking_symmetry.pd b/packages/noncvs/windows/extra/Gem/examples/13.recursion/06.breaking_symmetry.pd
index 74cd9c1f..b97214b6 100644
--- a/packages/noncvs/windows/extra/Gem/examples/13.recursion/06.breaking_symmetry.pd
+++ b/packages/noncvs/windows/extra/Gem/examples/13.recursion/06.breaking_symmetry.pd
@@ -1,384 +1,384 @@
-#N canvas 4 2 673 560 10;
-#X obj 14 66 gemwin;
-#X obj 14 9 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1
-;
-#X msg 55 33 destroy;
-#X obj 14 92 gemhead;
-#X text 220 17 A tutorial on recursion in Gem;
-#X text 220 37 (GPL) 2007 Claude Heiland-Allen <claudiusmaximus@goto10.org>
-;
-#X obj 30 273 r \$0-recurse;
-#X obj 14 301 t a a;
-#X floatatom 72 360 5 0 0 2 count - -;
-#X obj 72 379 clip 1 6;
-#N canvas 0 0 368 384 \$0-transformations 0;
-#X obj 19 19 inlet;
-#X obj 250 19 inlet;
-#X obj 19 343 outlet;
-#X text 299 20 count;
-#X text 72 19 gem;
-#X text 74 344 gem;
-#X obj 19 44 separator;
-#X obj 19 315 scaleXYZ;
-#X obj 19 225 translateXYZ;
-#X obj 19 135 rotateXYZ;
-#X obj 38 74 tabread \$0-rotate-X;
-#X obj 57 94 tabread \$0-rotate-Y;
-#X obj 77 114 tabread \$0-rotate-Z;
-#X obj 45 164 tabread \$0-translate-X;
-#X obj 71 184 tabread \$0-translate-Y;
-#X obj 98 204 tabread \$0-translate-Z;
-#X obj 36 254 tabread \$0-scale-X;
-#X obj 53 274 tabread \$0-scale-Y;
-#X obj 70 294 tabread \$0-scale-Z;
-#X text 135 230 Transform the recursion branch \,;
-#X connect 0 0 6 0;
-#X connect 1 0 10 0;
-#X connect 1 0 11 0;
-#X connect 1 0 12 0;
-#X connect 1 0 13 0;
-#X connect 1 0 14 0;
-#X connect 1 0 15 0;
-#X connect 1 0 16 0;
-#X connect 1 0 17 0;
-#X connect 1 0 18 0;
-#X connect 6 0 9 0;
-#X connect 7 0 2 0;
-#X connect 8 0 7 0;
-#X connect 9 0 8 0;
-#X connect 10 0 9 1;
-#X connect 11 0 9 2;
-#X connect 12 0 9 3;
-#X connect 13 0 8 1;
-#X connect 14 0 8 2;
-#X connect 15 0 8 3;
-#X connect 16 0 7 1;
-#X connect 17 0 7 2;
-#X connect 18 0 7 3;
-#X restore 63 442 pd \$0-transformations;
-#N canvas 0 0 679 337 \$0-colourize-and-limit-depth 0;
-#X obj 297 19 inlet;
-#X obj 293 298 outlet;
-#X text 343 299 gem;
-#X text 347 21 gem;
-#X obj 436 18 inlet;
-#X text 487 18 count;
-#X obj 352 171 v \$0-depth;
-#X obj 352 191 - 1;
-#X obj 352 211 max 0;
-#X obj 352 231 v \$0-depth;
-#X obj 294 246 spigot;
-#X obj 264 174 v \$0-depth;
-#X obj 264 214 v \$0-depth;
-#X obj 264 194 + 1;
-#X obj 436 189 v \$0-R;
-#X obj 436 229 v \$0-R;
-#X obj 486 189 v \$0-G;
-#X obj 486 229 v \$0-G;
-#X obj 536 229 v \$0-B;
-#X obj 536 189 v \$0-B;
-#X obj 436 71 tabread \$0-colour-R;
-#X obj 486 105 tabread \$0-colour-G;
-#X obj 536 128 tabread \$0-colour-B;
-#X text 442 248 Transform colours.;
-#X text 251 271 Limit recursion depth.;
-#X obj 536 209 + 1;
-#X obj 486 209 + 1;
-#X obj 435 209 + 1;
-#X obj 297 52 t b a b;
-#X obj 436 167 t b f;
-#X obj 486 167 t b f;
-#X obj 536 167 t b f;
-#X obj 46 18 inlet;
-#X text 97 18 count;
-#X obj 46 189 v \$0-R;
-#X obj 46 229 v \$0-R;
-#X obj 96 189 v \$0-G;
-#X obj 96 229 v \$0-G;
-#X obj 146 229 v \$0-B;
-#X obj 146 189 v \$0-B;
-#X obj 46 71 tabread \$0-colour-R;
-#X obj 96 105 tabread \$0-colour-G;
-#X obj 146 128 tabread \$0-colour-B;
-#X obj 46 167 t b f;
-#X obj 96 167 t b f;
-#X obj 146 167 t b f;
-#X text 52 252 Untransform colours.;
-#X obj 45 209 - 1;
-#X obj 96 209 - 1;
-#X obj 146 209 - 1;
-#X connect 0 0 28 0;
-#X connect 4 0 20 0;
-#X connect 4 0 21 0;
-#X connect 4 0 22 0;
-#X connect 6 0 7 0;
-#X connect 7 0 8 0;
-#X connect 8 0 9 0;
-#X connect 8 0 10 1;
-#X connect 10 0 1 0;
-#X connect 11 0 13 0;
-#X connect 13 0 12 0;
-#X connect 14 0 27 0;
-#X connect 16 0 26 0;
-#X connect 19 0 25 0;
-#X connect 20 0 29 0;
-#X connect 21 0 30 0;
-#X connect 22 0 31 0;
-#X connect 25 0 18 0;
-#X connect 26 0 17 0;
-#X connect 27 0 15 0;
-#X connect 28 0 11 0;
-#X connect 28 1 10 0;
-#X connect 28 2 6 0;
-#X connect 29 0 14 0;
-#X connect 29 1 27 1;
-#X connect 30 0 16 0;
-#X connect 30 1 26 1;
-#X connect 31 0 19 0;
-#X connect 31 1 25 1;
-#X connect 32 0 40 0;
-#X connect 32 0 41 0;
-#X connect 32 0 42 0;
-#X connect 34 0 47 0;
-#X connect 36 0 48 0;
-#X connect 39 0 49 0;
-#X connect 40 0 43 0;
-#X connect 41 0 44 0;
-#X connect 42 0 45 0;
-#X connect 43 0 34 0;
-#X connect 43 1 47 1;
-#X connect 44 0 36 0;
-#X connect 44 1 48 1;
-#X connect 45 0 39 0;
-#X connect 45 1 49 1;
-#X connect 47 0 35 0;
-#X connect 48 0 37 0;
-#X connect 49 0 38 0;
-#X restore 14 479 pd \$0-colourize-and-limit-depth;
-#X obj 14 499 s \$0-recurse;
-#X obj 14 223 t a b;
-#N canvas 22 26 435 181 \$0-initialize 0;
-#X obj 23 20 inlet;
-#X text 68 19 bang;
-#X obj 23 122 v \$0-depth;
-#X obj 23 102 f 4;
-#X obj 103 122 v \$0-R;
-#X obj 153 122 v \$0-G;
-#X obj 203 122 v \$0-B;
-#X obj 160 21 inlet;
-#X text 205 20 max depth;
-#X text 18 146 Initialize the variables: recursion depth and object
-colours.;
-#X obj 203 98 f 0;
-#X obj 153 99 f 0;
-#X obj 103 98 f 0;
-#X connect 0 0 3 0;
-#X connect 0 0 10 0;
-#X connect 0 0 11 0;
-#X connect 0 0 12 0;
-#X connect 3 0 2 0;
-#X connect 7 0 3 1;
-#X connect 10 0 6 0;
-#X connect 11 0 5 0;
-#X connect 12 0 4 0;
-#X restore 44 243 pd \$0-initialize;
-#X floatatom 151 200 5 0 0 2 depth - -;
-#N canvas 0 0 340 391 \$0-draw-object 0;
-#X obj 23 14 inlet;
-#X text 69 13 gem;
-#X obj 23 67 t a b b b;
-#X obj 23 321 colorRGB;
-#X obj 23 358 cube;
-#X obj 240 291 inlet;
-#X text 286 291 alpha;
-#X obj 42 106 v \$0-R;
-#X obj 120 104 v \$0-G;
-#X obj 198 104 v \$0-B;
-#X text 125 76 Normalize the colour range.;
-#X obj 23 41 separator;
-#X obj 42 253 expr $f1/$f4 \; $f2/$f4 \; $f3/$f4;
-#X obj 42 128 expr $f1 \; $f2 \; $f3 \; max(max(max($f1 \, $f2) \,
-$f3) \, 1);
-#X connect 0 0 11 0;
-#X connect 2 0 3 0;
-#X connect 2 1 7 0;
-#X connect 2 2 8 0;
-#X connect 2 3 9 0;
-#X connect 3 0 4 0;
-#X connect 5 0 3 4;
-#X connect 7 0 13 0;
-#X connect 8 0 13 1;
-#X connect 9 0 13 2;
-#X connect 11 0 2 0;
-#X connect 12 0 3 1;
-#X connect 12 1 3 2;
-#X connect 12 2 3 3;
-#X connect 13 0 12 0;
-#X connect 13 1 12 1;
-#X connect 13 2 12 2;
-#X connect 13 3 12 3;
-#X restore 44 321 pd \$0-draw-object;
-#X floatatom 158 279 5 0 0 2 alpha - -;
-#X obj 158 299 / 100;
-#N canvas 0 0 650 615 \$0-gui 0;
-#X obj 11 11 xform-gui 0;
-#X obj 167 263 t a;
-#X msg 167 293 \$3 \$1 \$2;
-#X obj 167 329 unpack f f s;
-#X obj 246 355 select cR cG cB rX rY rZ tX tY tZ sX sY sZ;
-#X obj 167 576 tabwrite;
-#X obj 246 485 symbol \$0-colour-R;
-#X obj 270 465 symbol \$0-colour-G;
-#X obj 294 445 symbol \$0-colour-B;
-#X obj 318 425 symbol \$0-rotate-X;
-#X obj 342 405 symbol \$0-rotate-Y;
-#X obj 366 385 symbol \$0-rotate-Z;
-#X obj 390 485 symbol \$0-translate-X;
-#X obj 414 465 symbol \$0-translate-Y;
-#X obj 438 445 symbol \$0-translate-Z;
-#X obj 462 425 symbol \$0-scale-X;
-#X obj 486 405 symbol \$0-scale-Y;
-#X obj 510 385 symbol \$0-scale-Z;
-#X obj 374 552 list prepend set;
-#X obj 374 572 list trim;
-#X obj 495 112 inlet;
-#X obj 71 11 xform-gui 1;
-#X obj 131 11 xform-gui 2;
-#X obj 191 11 xform-gui 3;
-#X obj 251 11 xform-gui 4;
-#X obj 311 11 xform-gui 5;
-#X connect 0 0 1 0;
-#X connect 1 0 2 0;
-#X connect 2 0 3 0;
-#X connect 3 0 5 0;
-#X connect 3 1 5 1;
-#X connect 3 2 4 0;
-#X connect 4 0 6 0;
-#X connect 4 1 7 0;
-#X connect 4 2 8 0;
-#X connect 4 3 9 0;
-#X connect 4 4 10 0;
-#X connect 4 5 11 0;
-#X connect 4 6 12 0;
-#X connect 4 7 13 0;
-#X connect 4 8 14 0;
-#X connect 4 9 15 0;
-#X connect 4 10 16 0;
-#X connect 4 11 17 0;
-#X connect 6 0 18 0;
-#X connect 7 0 18 0;
-#X connect 8 0 18 0;
-#X connect 9 0 18 0;
-#X connect 10 0 18 0;
-#X connect 11 0 18 0;
-#X connect 12 0 18 0;
-#X connect 13 0 18 0;
-#X connect 14 0 18 0;
-#X connect 15 0 18 0;
-#X connect 16 0 18 0;
-#X connect 17 0 18 0;
-#X connect 18 0 19 0;
-#X connect 19 0 5 0;
-#X connect 20 0 0 0;
-#X connect 20 0 21 0;
-#X connect 20 0 22 0;
-#X connect 20 0 23 0;
-#X connect 20 0 24 0;
-#X connect 20 0 25 0;
-#X connect 21 0 1 0;
-#X connect 22 0 1 0;
-#X connect 23 0 1 0;
-#X connect 24 0 1 0;
-#X connect 25 0 1 0;
-#X coords 0 -1 1 1 362 212 2 10 10;
-#X restore 275 286 pd \$0-gui;
-#X text 460 263 transformation parameters;
-#N canvas 0 0 360 364 \$0-transformation-parameters 0;
-#X obj 21 318 table \$0-scale-Z 6;
-#X obj 21 298 table \$0-scale-Y 6;
-#X obj 21 278 table \$0-scale-X 6;
-#X obj 21 208 table \$0-translate-X 6;
-#X obj 21 228 table \$0-translate-Y 6;
-#X obj 21 248 table \$0-translate-Z 6;
-#X obj 21 178 table \$0-rotate-Z 6;
-#X obj 21 158 table \$0-rotate-Y 6;
-#X obj 21 138 table \$0-rotate-X 6;
-#X obj 21 68 table \$0-colour-R 6;
-#X obj 21 88 table \$0-colour-G 6;
-#X obj 21 108 table \$0-colour-B 6;
-#X text 21 29 Tables to store transformation parameters.;
-#X restore 418 506 pd \$0-transformation-parameters;
-#X obj 14 191 alpha;
-#X msg 37 164 auto \$1;
-#X obj 38 139 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
-1;
-#N canvas 0 0 471 288 \$0-scene-transformation 0;
-#X obj 20 20 inlet;
-#X obj 20 42 t a b;
-#X obj 20 149 rotateXYZ;
-#X obj 50 67 f 0;
-#X obj 88 67 + 1;
-#X obj 62 98 / 1.618;
-#X obj 82 122 / 1.618;
-#X obj 20 217 scale 0.05;
-#X obj 53 191 inlet;
-#X obj 20 252 outlet;
-#X text 152 215 Scale the whole scene.;
-#X text 158 67 Rotate the whole scene continuously.;
-#X connect 0 0 1 0;
-#X connect 1 0 2 0;
-#X connect 1 1 3 0;
-#X connect 2 0 7 0;
-#X connect 3 0 4 0;
-#X connect 3 0 2 1;
-#X connect 3 0 5 0;
-#X connect 4 0 3 1;
-#X connect 5 0 2 2;
-#X connect 5 0 6 0;
-#X connect 6 0 2 3;
-#X connect 7 0 9 0;
-#X connect 8 0 7 1;
-#X restore 14 115 pd \$0-scene-transformation;
-#X floatatom 158 69 5 0 0 2 scale - -;
-#X obj 158 89 / 100;
-#X obj 151 221 clip 0 6;
-#X text 219 182 Subpatches are used to hide the implementation details
-of each part of the patch. Further comments are inside.;
-#X obj 275 260 bng 15 250 50 1 empty empty randomize 17 7 0 10 -262144
--1 -1;
-#X obj 14 404 nnrepeat 5;
-#X text 220 77 Another new object is necessary for full effect: [nnrepeat]
-which outputs the repeat count both before and after the repeated value
-\, thus we can do and undo actions before and after \, such as colourizing
-the geos according to the transformations. Allowing different parameters
-for each transformation means we can create non-symmetric structures
-with some sort of self-similarity.;
-#X msg 48 13 create;
-#X connect 1 0 0 0;
-#X connect 2 0 0 0;
-#X connect 3 0 25 0;
-#X connect 6 0 7 0;
-#X connect 7 0 31 0;
-#X connect 7 1 16 0;
-#X connect 8 0 9 0;
-#X connect 9 0 31 1;
-#X connect 10 0 11 1;
-#X connect 11 0 12 0;
-#X connect 13 0 7 0;
-#X connect 13 1 14 0;
-#X connect 15 0 28 0;
-#X connect 17 0 18 0;
-#X connect 18 0 16 1;
-#X connect 22 0 13 0;
-#X connect 23 0 22 0;
-#X connect 24 0 23 0;
-#X connect 25 0 22 0;
-#X connect 26 0 27 0;
-#X connect 27 0 25 1;
-#X connect 28 0 14 1;
-#X connect 30 0 19 0;
-#X connect 31 0 11 0;
-#X connect 31 1 10 0;
-#X connect 31 2 10 1;
-#X connect 31 2 11 2;
-#X connect 33 0 0 0;
+#N canvas 4 2 673 560 10;
+#X obj 14 66 gemwin;
+#X obj 14 9 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1
+;
+#X msg 55 33 destroy;
+#X obj 14 92 gemhead;
+#X text 220 17 A tutorial on recursion in Gem;
+#X text 220 37 (GPL) 2007 Claude Heiland-Allen <claudiusmaximus@goto10.org>
+;
+#X obj 30 273 r \$0-recurse;
+#X obj 14 301 t a a;
+#X floatatom 72 360 5 0 0 2 count - -;
+#X obj 72 379 clip 1 6;
+#N canvas 0 0 368 384 \$0-transformations 0;
+#X obj 19 19 inlet;
+#X obj 250 19 inlet;
+#X obj 19 343 outlet;
+#X text 299 20 count;
+#X text 72 19 gem;
+#X text 74 344 gem;
+#X obj 19 44 separator;
+#X obj 19 315 scaleXYZ;
+#X obj 19 225 translateXYZ;
+#X obj 19 135 rotateXYZ;
+#X obj 38 74 tabread \$0-rotate-X;
+#X obj 57 94 tabread \$0-rotate-Y;
+#X obj 77 114 tabread \$0-rotate-Z;
+#X obj 45 164 tabread \$0-translate-X;
+#X obj 71 184 tabread \$0-translate-Y;
+#X obj 98 204 tabread \$0-translate-Z;
+#X obj 36 254 tabread \$0-scale-X;
+#X obj 53 274 tabread \$0-scale-Y;
+#X obj 70 294 tabread \$0-scale-Z;
+#X text 135 230 Transform the recursion branch \,;
+#X connect 0 0 6 0;
+#X connect 1 0 10 0;
+#X connect 1 0 11 0;
+#X connect 1 0 12 0;
+#X connect 1 0 13 0;
+#X connect 1 0 14 0;
+#X connect 1 0 15 0;
+#X connect 1 0 16 0;
+#X connect 1 0 17 0;
+#X connect 1 0 18 0;
+#X connect 6 0 9 0;
+#X connect 7 0 2 0;
+#X connect 8 0 7 0;
+#X connect 9 0 8 0;
+#X connect 10 0 9 1;
+#X connect 11 0 9 2;
+#X connect 12 0 9 3;
+#X connect 13 0 8 1;
+#X connect 14 0 8 2;
+#X connect 15 0 8 3;
+#X connect 16 0 7 1;
+#X connect 17 0 7 2;
+#X connect 18 0 7 3;
+#X restore 63 442 pd \$0-transformations;
+#N canvas 0 0 679 337 \$0-colourize-and-limit-depth 0;
+#X obj 297 19 inlet;
+#X obj 293 298 outlet;
+#X text 343 299 gem;
+#X text 347 21 gem;
+#X obj 436 18 inlet;
+#X text 487 18 count;
+#X obj 352 171 v \$0-depth;
+#X obj 352 191 - 1;
+#X obj 352 211 max 0;
+#X obj 352 231 v \$0-depth;
+#X obj 294 246 spigot;
+#X obj 264 174 v \$0-depth;
+#X obj 264 214 v \$0-depth;
+#X obj 264 194 + 1;
+#X obj 436 189 v \$0-R;
+#X obj 436 229 v \$0-R;
+#X obj 486 189 v \$0-G;
+#X obj 486 229 v \$0-G;
+#X obj 536 229 v \$0-B;
+#X obj 536 189 v \$0-B;
+#X obj 436 71 tabread \$0-colour-R;
+#X obj 486 105 tabread \$0-colour-G;
+#X obj 536 128 tabread \$0-colour-B;
+#X text 442 248 Transform colours.;
+#X text 251 271 Limit recursion depth.;
+#X obj 536 209 + 1;
+#X obj 486 209 + 1;
+#X obj 435 209 + 1;
+#X obj 297 52 t b a b;
+#X obj 436 167 t b f;
+#X obj 486 167 t b f;
+#X obj 536 167 t b f;
+#X obj 46 18 inlet;
+#X text 97 18 count;
+#X obj 46 189 v \$0-R;
+#X obj 46 229 v \$0-R;
+#X obj 96 189 v \$0-G;
+#X obj 96 229 v \$0-G;
+#X obj 146 229 v \$0-B;
+#X obj 146 189 v \$0-B;
+#X obj 46 71 tabread \$0-colour-R;
+#X obj 96 105 tabread \$0-colour-G;
+#X obj 146 128 tabread \$0-colour-B;
+#X obj 46 167 t b f;
+#X obj 96 167 t b f;
+#X obj 146 167 t b f;
+#X text 52 252 Untransform colours.;
+#X obj 45 209 - 1;
+#X obj 96 209 - 1;
+#X obj 146 209 - 1;
+#X connect 0 0 28 0;
+#X connect 4 0 20 0;
+#X connect 4 0 21 0;
+#X connect 4 0 22 0;
+#X connect 6 0 7 0;
+#X connect 7 0 8 0;
+#X connect 8 0 9 0;
+#X connect 8 0 10 1;
+#X connect 10 0 1 0;
+#X connect 11 0 13 0;
+#X connect 13 0 12 0;
+#X connect 14 0 27 0;
+#X connect 16 0 26 0;
+#X connect 19 0 25 0;
+#X connect 20 0 29 0;
+#X connect 21 0 30 0;
+#X connect 22 0 31 0;
+#X connect 25 0 18 0;
+#X connect 26 0 17 0;
+#X connect 27 0 15 0;
+#X connect 28 0 11 0;
+#X connect 28 1 10 0;
+#X connect 28 2 6 0;
+#X connect 29 0 14 0;
+#X connect 29 1 27 1;
+#X connect 30 0 16 0;
+#X connect 30 1 26 1;
+#X connect 31 0 19 0;
+#X connect 31 1 25 1;
+#X connect 32 0 40 0;
+#X connect 32 0 41 0;
+#X connect 32 0 42 0;
+#X connect 34 0 47 0;
+#X connect 36 0 48 0;
+#X connect 39 0 49 0;
+#X connect 40 0 43 0;
+#X connect 41 0 44 0;
+#X connect 42 0 45 0;
+#X connect 43 0 34 0;
+#X connect 43 1 47 1;
+#X connect 44 0 36 0;
+#X connect 44 1 48 1;
+#X connect 45 0 39 0;
+#X connect 45 1 49 1;
+#X connect 47 0 35 0;
+#X connect 48 0 37 0;
+#X connect 49 0 38 0;
+#X restore 14 479 pd \$0-colourize-and-limit-depth;
+#X obj 14 499 s \$0-recurse;
+#X obj 14 223 t a b;
+#N canvas 22 26 435 181 \$0-initialize 0;
+#X obj 23 20 inlet;
+#X text 68 19 bang;
+#X obj 23 122 v \$0-depth;
+#X obj 23 102 f 4;
+#X obj 103 122 v \$0-R;
+#X obj 153 122 v \$0-G;
+#X obj 203 122 v \$0-B;
+#X obj 160 21 inlet;
+#X text 205 20 max depth;
+#X text 18 146 Initialize the variables: recursion depth and object
+colours.;
+#X obj 203 98 f 0;
+#X obj 153 99 f 0;
+#X obj 103 98 f 0;
+#X connect 0 0 3 0;
+#X connect 0 0 10 0;
+#X connect 0 0 11 0;
+#X connect 0 0 12 0;
+#X connect 3 0 2 0;
+#X connect 7 0 3 1;
+#X connect 10 0 6 0;
+#X connect 11 0 5 0;
+#X connect 12 0 4 0;
+#X restore 44 243 pd \$0-initialize;
+#X floatatom 151 200 5 0 0 2 depth - -;
+#N canvas 0 0 340 391 \$0-draw-object 0;
+#X obj 23 14 inlet;
+#X text 69 13 gem;
+#X obj 23 67 t a b b b;
+#X obj 23 321 colorRGB;
+#X obj 23 358 cube;
+#X obj 240 291 inlet;
+#X text 286 291 alpha;
+#X obj 42 106 v \$0-R;
+#X obj 120 104 v \$0-G;
+#X obj 198 104 v \$0-B;
+#X text 125 76 Normalize the colour range.;
+#X obj 23 41 separator;
+#X obj 42 253 expr $f1/$f4 \; $f2/$f4 \; $f3/$f4;
+#X obj 42 128 expr $f1 \; $f2 \; $f3 \; max(max(max($f1 \, $f2) \,
+$f3) \, 1);
+#X connect 0 0 11 0;
+#X connect 2 0 3 0;
+#X connect 2 1 7 0;
+#X connect 2 2 8 0;
+#X connect 2 3 9 0;
+#X connect 3 0 4 0;
+#X connect 5 0 3 4;
+#X connect 7 0 13 0;
+#X connect 8 0 13 1;
+#X connect 9 0 13 2;
+#X connect 11 0 2 0;
+#X connect 12 0 3 1;
+#X connect 12 1 3 2;
+#X connect 12 2 3 3;
+#X connect 13 0 12 0;
+#X connect 13 1 12 1;
+#X connect 13 2 12 2;
+#X connect 13 3 12 3;
+#X restore 44 321 pd \$0-draw-object;
+#X floatatom 158 279 5 0 0 2 alpha - -;
+#X obj 158 299 / 100;
+#N canvas 0 0 650 615 \$0-gui 0;
+#X obj 11 11 xform-gui 0;
+#X obj 167 263 t a;
+#X msg 167 293 \$3 \$1 \$2;
+#X obj 167 329 unpack f f s;
+#X obj 246 355 select cR cG cB rX rY rZ tX tY tZ sX sY sZ;
+#X obj 167 576 tabwrite;
+#X obj 246 485 symbol \$0-colour-R;
+#X obj 270 465 symbol \$0-colour-G;
+#X obj 294 445 symbol \$0-colour-B;
+#X obj 318 425 symbol \$0-rotate-X;
+#X obj 342 405 symbol \$0-rotate-Y;
+#X obj 366 385 symbol \$0-rotate-Z;
+#X obj 390 485 symbol \$0-translate-X;
+#X obj 414 465 symbol \$0-translate-Y;
+#X obj 438 445 symbol \$0-translate-Z;
+#X obj 462 425 symbol \$0-scale-X;
+#X obj 486 405 symbol \$0-scale-Y;
+#X obj 510 385 symbol \$0-scale-Z;
+#X obj 374 552 list prepend set;
+#X obj 374 572 list trim;
+#X obj 495 112 inlet;
+#X obj 71 11 xform-gui 1;
+#X obj 131 11 xform-gui 2;
+#X obj 191 11 xform-gui 3;
+#X obj 251 11 xform-gui 4;
+#X obj 311 11 xform-gui 5;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 2 0 3 0;
+#X connect 3 0 5 0;
+#X connect 3 1 5 1;
+#X connect 3 2 4 0;
+#X connect 4 0 6 0;
+#X connect 4 1 7 0;
+#X connect 4 2 8 0;
+#X connect 4 3 9 0;
+#X connect 4 4 10 0;
+#X connect 4 5 11 0;
+#X connect 4 6 12 0;
+#X connect 4 7 13 0;
+#X connect 4 8 14 0;
+#X connect 4 9 15 0;
+#X connect 4 10 16 0;
+#X connect 4 11 17 0;
+#X connect 6 0 18 0;
+#X connect 7 0 18 0;
+#X connect 8 0 18 0;
+#X connect 9 0 18 0;
+#X connect 10 0 18 0;
+#X connect 11 0 18 0;
+#X connect 12 0 18 0;
+#X connect 13 0 18 0;
+#X connect 14 0 18 0;
+#X connect 15 0 18 0;
+#X connect 16 0 18 0;
+#X connect 17 0 18 0;
+#X connect 18 0 19 0;
+#X connect 19 0 5 0;
+#X connect 20 0 0 0;
+#X connect 20 0 21 0;
+#X connect 20 0 22 0;
+#X connect 20 0 23 0;
+#X connect 20 0 24 0;
+#X connect 20 0 25 0;
+#X connect 21 0 1 0;
+#X connect 22 0 1 0;
+#X connect 23 0 1 0;
+#X connect 24 0 1 0;
+#X connect 25 0 1 0;
+#X coords 0 -1 1 1 362 212 2 10 10;
+#X restore 275 286 pd \$0-gui;
+#X text 460 263 transformation parameters;
+#N canvas 0 0 360 364 \$0-transformation-parameters 0;
+#X obj 21 318 table \$0-scale-Z 6;
+#X obj 21 298 table \$0-scale-Y 6;
+#X obj 21 278 table \$0-scale-X 6;
+#X obj 21 208 table \$0-translate-X 6;
+#X obj 21 228 table \$0-translate-Y 6;
+#X obj 21 248 table \$0-translate-Z 6;
+#X obj 21 178 table \$0-rotate-Z 6;
+#X obj 21 158 table \$0-rotate-Y 6;
+#X obj 21 138 table \$0-rotate-X 6;
+#X obj 21 68 table \$0-colour-R 6;
+#X obj 21 88 table \$0-colour-G 6;
+#X obj 21 108 table \$0-colour-B 6;
+#X text 21 29 Tables to store transformation parameters.;
+#X restore 418 506 pd \$0-transformation-parameters;
+#X obj 14 191 alpha;
+#X msg 37 164 auto \$1;
+#X obj 38 139 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#N canvas 0 0 471 288 \$0-scene-transformation 0;
+#X obj 20 20 inlet;
+#X obj 20 42 t a b;
+#X obj 20 149 rotateXYZ;
+#X obj 50 67 f 0;
+#X obj 88 67 + 1;
+#X obj 62 98 / 1.618;
+#X obj 82 122 / 1.618;
+#X obj 20 217 scale 0.05;
+#X obj 53 191 inlet;
+#X obj 20 252 outlet;
+#X text 152 215 Scale the whole scene.;
+#X text 158 67 Rotate the whole scene continuously.;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 1 1 3 0;
+#X connect 2 0 7 0;
+#X connect 3 0 4 0;
+#X connect 3 0 2 1;
+#X connect 3 0 5 0;
+#X connect 4 0 3 1;
+#X connect 5 0 2 2;
+#X connect 5 0 6 0;
+#X connect 6 0 2 3;
+#X connect 7 0 9 0;
+#X connect 8 0 7 1;
+#X restore 14 115 pd \$0-scene-transformation;
+#X floatatom 158 69 5 0 0 2 scale - -;
+#X obj 158 89 / 100;
+#X obj 151 221 clip 0 6;
+#X text 219 182 Subpatches are used to hide the implementation details
+of each part of the patch. Further comments are inside.;
+#X obj 275 260 bng 15 250 50 1 empty empty randomize 17 7 0 10 -262144
+-1 -1;
+#X obj 14 404 nnrepeat 5;
+#X text 220 77 Another new object is necessary for full effect: [nnrepeat]
+which outputs the repeat count both before and after the repeated value
+\, thus we can do and undo actions before and after \, such as colourizing
+the geos according to the transformations. Allowing different parameters
+for each transformation means we can create non-symmetric structures
+with some sort of self-similarity.;
+#X msg 48 13 create;
+#X connect 1 0 0 0;
+#X connect 2 0 0 0;
+#X connect 3 0 25 0;
+#X connect 6 0 7 0;
+#X connect 7 0 31 0;
+#X connect 7 1 16 0;
+#X connect 8 0 9 0;
+#X connect 9 0 31 1;
+#X connect 10 0 11 1;
+#X connect 11 0 12 0;
+#X connect 13 0 7 0;
+#X connect 13 1 14 0;
+#X connect 15 0 28 0;
+#X connect 17 0 18 0;
+#X connect 18 0 16 1;
+#X connect 22 0 13 0;
+#X connect 23 0 22 0;
+#X connect 24 0 23 0;
+#X connect 25 0 22 0;
+#X connect 26 0 27 0;
+#X connect 27 0 25 1;
+#X connect 28 0 14 1;
+#X connect 30 0 19 0;
+#X connect 31 0 11 0;
+#X connect 31 1 10 0;
+#X connect 31 2 10 1;
+#X connect 31 2 11 2;
+#X connect 33 0 0 0;