aboutsummaryrefslogtreecommitdiff
path: root/Gem/examples/06.particle
diff options
context:
space:
mode:
Diffstat (limited to 'Gem/examples/06.particle')
-rw-r--r--Gem/examples/06.particle/01.simple.pd69
-rw-r--r--Gem/examples/06.particle/02.fountain.pd86
-rw-r--r--Gem/examples/06.particle/03.orbit.pd88
-rw-r--r--Gem/examples/06.particle/04.combo.pd104
-rw-r--r--Gem/examples/06.particle/05.twoSrc.pd173
-rw-r--r--Gem/examples/06.particle/06.target.pd74
-rw-r--r--Gem/examples/06.particle/07.render.pd86
-rw-r--r--Gem/examples/06.particle/08.info.pd117
-rw-r--r--Gem/examples/06.particle/09.sink.pd100
9 files changed, 897 insertions, 0 deletions
diff --git a/Gem/examples/06.particle/01.simple.pd b/Gem/examples/06.particle/01.simple.pd
new file mode 100644
index 0000000..a618273
--- /dev/null
+++ b/Gem/examples/06.particle/01.simple.pd
@@ -0,0 +1,69 @@
+#N canvas 509 196 487 398 10;
+#X obj 167 160 gemhead;
+#X obj 167 192 part_head;
+#X obj 167 328 part_draw;
+#X text 277 258 set the number per frame;
+#X text 291 290 set the age to kill at;
+#X text 296 110 the velocity domain;
+#X text 295 125 a sphere at 0 \, 0.2 \, 0;
+#X text 296 144 radius = 0.3;
+#X msg 271 170 0 0.2 0 0.3;
+#X msg 358 169 0.2 0 0 0.3;
+#X obj 167 228 part_velocity sphere 0 0.2 0 0.3;
+#X obj 167 261 part_source 20;
+#X obj 167 292 part_killold 50;
+#N canvas 87 154 247 179 Gem.init 0;
+#X obj 118 46 loadbang;
+#X msg 118 81 reset;
+#X obj 118 113 outlet;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X restore 67 48 pd Gem.init;
+#N canvas 340 107 682 322 gemwin 0;
+#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144
+-1 -1 0 1;
+#X obj 102 161 r \$0-gemstart;
+#X obj 102 182 select 1 0;
+#X msg 102 214 create \, 1;
+#X msg 177 215 destroy;
+#X obj 102 239 t a;
+#X obj 318 54 inlet;
+#X obj 318 255 gemwin;
+#X obj 318 100 t a a;
+#X obj 318 287 outlet;
+#X obj 350 128 route create destroy;
+#X obj 350 150 t b;
+#X msg 350 172 1;
+#X obj 390 150 t b;
+#X msg 390 172 0;
+#X obj 350 195 t f;
+#X msg 350 219 set \$1;
+#X text 118 122 rendering;
+#X connect 1 0 2 0;
+#X connect 2 0 3 0;
+#X connect 2 1 4 0;
+#X connect 3 0 5 0;
+#X connect 4 0 5 0;
+#X connect 5 0 8 0;
+#X connect 6 0 8 0;
+#X connect 7 0 9 0;
+#X connect 8 0 7 0;
+#X connect 8 1 10 0;
+#X connect 10 0 11 0;
+#X connect 10 1 13 0;
+#X connect 11 0 12 0;
+#X connect 12 0 15 0;
+#X connect 13 0 14 0;
+#X connect 14 0 15 0;
+#X connect 15 0 16 0;
+#X connect 16 0 0 0;
+#X coords 0 -1 1 1 85 40 1 100 100;
+#X restore 37 65 pd gemwin;
+#X connect 0 0 1 0;
+#X connect 1 0 10 0;
+#X connect 8 0 10 2;
+#X connect 9 0 10 2;
+#X connect 10 0 11 0;
+#X connect 11 0 12 0;
+#X connect 12 0 2 0;
+#X connect 13 0 14 0;
diff --git a/Gem/examples/06.particle/02.fountain.pd b/Gem/examples/06.particle/02.fountain.pd
new file mode 100644
index 0000000..a12a37d
--- /dev/null
+++ b/Gem/examples/06.particle/02.fountain.pd
@@ -0,0 +1,86 @@
+#N canvas 396 160 600 500 10;
+#X obj 198 50 gemhead;
+#X obj 198 82 part_head;
+#X obj 198 136 part_color;
+#X obj 198 447 part_draw;
+#X msg 335 69 0 1 0;
+#X text 329 37 set the color range;
+#X obj 198 174 part_size 1;
+#X text 299 126 set the size;
+#X obj 198 331 part_gravity 0 -0.01 0;
+#X obj 198 206 part_velocity sphere 0 0.2 0 0.2;
+#X text 310 269 set the number per frame;
+#X text 310 378 set the age to kill at;
+#X text 366 327 gravity to affect the particles;
+#X text 428 174 the velocity domain;
+#X text 426 191 a sphere at 0 \, 0.2 \, 0;
+#X msg 219 413 draw line;
+#X msg 298 413 draw point;
+#X msg 309 151 2;
+#X msg 393 69 1 0 0;
+#X obj 198 270 part_source 25;
+#X obj 198 381 part_killold 45;
+#X text 426 208 radius = 0.2;
+#X msg 126 51 speed 0.1;
+#N canvas 87 154 247 179 Gem.init 0;
+#X obj 118 46 loadbang;
+#X msg 118 81 reset;
+#X obj 118 113 outlet;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X restore 64 159 pd Gem.init;
+#N canvas 340 107 682 322 gemwin 0;
+#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144
+-1 -1 0 1;
+#X obj 102 161 r \$0-gemstart;
+#X obj 102 182 select 1 0;
+#X msg 102 214 create \, 1;
+#X msg 177 215 destroy;
+#X obj 102 239 t a;
+#X obj 318 54 inlet;
+#X obj 318 255 gemwin;
+#X obj 318 100 t a a;
+#X obj 318 287 outlet;
+#X obj 350 128 route create destroy;
+#X obj 350 150 t b;
+#X msg 350 172 1;
+#X obj 390 150 t b;
+#X msg 390 172 0;
+#X obj 350 195 t f;
+#X msg 350 219 set \$1;
+#X text 118 122 rendering;
+#X connect 1 0 2 0;
+#X connect 2 0 3 0;
+#X connect 2 1 4 0;
+#X connect 3 0 5 0;
+#X connect 4 0 5 0;
+#X connect 5 0 8 0;
+#X connect 6 0 8 0;
+#X connect 7 0 9 0;
+#X connect 8 0 7 0;
+#X connect 8 1 10 0;
+#X connect 10 0 11 0;
+#X connect 10 1 13 0;
+#X connect 11 0 12 0;
+#X connect 12 0 15 0;
+#X connect 13 0 14 0;
+#X connect 14 0 15 0;
+#X connect 15 0 16 0;
+#X connect 16 0 0 0;
+#X coords 0 -1 1 1 85 40 1 100 100;
+#X restore 34 176 pd gemwin;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 2 0 6 0;
+#X connect 4 0 2 1;
+#X connect 6 0 9 0;
+#X connect 8 0 20 0;
+#X connect 9 0 19 0;
+#X connect 15 0 3 0;
+#X connect 16 0 3 0;
+#X connect 17 0 6 1;
+#X connect 18 0 2 2;
+#X connect 19 0 8 0;
+#X connect 20 0 3 0;
+#X connect 22 0 1 0;
+#X connect 23 0 24 0;
diff --git a/Gem/examples/06.particle/03.orbit.pd b/Gem/examples/06.particle/03.orbit.pd
new file mode 100644
index 0000000..2791db1
--- /dev/null
+++ b/Gem/examples/06.particle/03.orbit.pd
@@ -0,0 +1,88 @@
+#N canvas 396 160 600 500 10;
+#X obj 198 50 gemhead;
+#X obj 198 82 part_head;
+#X obj 198 136 part_color;
+#X obj 198 447 part_draw;
+#X text 329 37 set the color range;
+#X text 299 174 set the size;
+#X text 310 269 set the number per frame;
+#X text 310 378 set the age to kill at;
+#X text 414 196 the velocity domain;
+#X msg 219 413 draw line;
+#X msg 298 413 draw point;
+#X obj 198 270 part_source 25;
+#X obj 198 381 part_killold 45;
+#X text 412 230 radius = 0.2;
+#X msg 336 97 1 0 1;
+#X msg 396 98 0 1 0;
+#X obj 198 220 part_velocity sphere 0 0 0 0.2;
+#X floatatom 375 301 0 0 0 0 - - -;
+#X obj 198 334 part_orbitpoint 0 1 0 0.08;
+#X text 390 333 orbit point and gravity;
+#X obj 198 174 part_size 0.4;
+#X obj 360 61 loadbang;
+#X text 411 213 a sphere at 0 0 0;
+#X text 415 299 keep the gravity low;
+#N canvas 87 154 247 179 Gem.init 0;
+#X obj 118 46 loadbang;
+#X msg 118 81 reset;
+#X obj 118 113 outlet;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X restore 64 238 pd Gem.init;
+#N canvas 340 107 682 322 gemwin 0;
+#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144
+-1 -1 0 1;
+#X obj 102 161 r \$0-gemstart;
+#X obj 102 182 select 1 0;
+#X msg 102 214 create \, 1;
+#X msg 177 215 destroy;
+#X obj 102 239 t a;
+#X obj 318 54 inlet;
+#X obj 318 255 gemwin;
+#X obj 318 100 t a a;
+#X obj 318 287 outlet;
+#X obj 350 128 route create destroy;
+#X obj 350 150 t b;
+#X msg 350 172 1;
+#X obj 390 150 t b;
+#X msg 390 172 0;
+#X obj 350 195 t f;
+#X msg 350 219 set \$1;
+#X text 118 122 rendering;
+#X connect 1 0 2 0;
+#X connect 2 0 3 0;
+#X connect 2 1 4 0;
+#X connect 3 0 5 0;
+#X connect 4 0 5 0;
+#X connect 5 0 8 0;
+#X connect 6 0 8 0;
+#X connect 7 0 9 0;
+#X connect 8 0 7 0;
+#X connect 8 1 10 0;
+#X connect 10 0 11 0;
+#X connect 10 1 13 0;
+#X connect 11 0 12 0;
+#X connect 12 0 15 0;
+#X connect 13 0 14 0;
+#X connect 14 0 15 0;
+#X connect 15 0 16 0;
+#X connect 16 0 0 0;
+#X coords 0 -1 1 1 85 40 1 100 100;
+#X restore 34 255 pd gemwin;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 2 0 20 0;
+#X connect 9 0 3 0;
+#X connect 10 0 3 0;
+#X connect 11 0 18 0;
+#X connect 12 0 3 0;
+#X connect 14 0 2 1;
+#X connect 15 0 2 2;
+#X connect 16 0 11 0;
+#X connect 17 0 18 2;
+#X connect 18 0 12 0;
+#X connect 20 0 16 0;
+#X connect 21 0 15 0;
+#X connect 21 0 14 0;
+#X connect 24 0 25 0;
diff --git a/Gem/examples/06.particle/04.combo.pd b/Gem/examples/06.particle/04.combo.pd
new file mode 100644
index 0000000..37d9afd
--- /dev/null
+++ b/Gem/examples/06.particle/04.combo.pd
@@ -0,0 +1,104 @@
+#N canvas 125 39 600 634 10;
+#X obj 41 197 gemwin;
+#X msg 41 39 create;
+#X msg 58 68 destroy;
+#X obj 198 39 gemhead;
+#X obj 198 136 part_color;
+#X obj 198 615 part_draw;
+#X text 391 35 set the color range;
+#X text 309 174 set the size;
+#X text 330 269 set the number per frame;
+#X text 330 458 set the age to kill at;
+#X text 464 196 the velocity domain;
+#X text 462 230 radius = 0.2;
+#X floatatom 382 383 0 0 0 0 - - -;
+#X text 420 413 orbit point and gravity;
+#X obj 422 59 loadbang;
+#X text 426 384 keep the gravity low;
+#X obj 198 461 part_killold 35;
+#X msg 398 95 0 0 1;
+#X obj 198 174 part_size 0.8;
+#X text 461 214 a sphere at -1 0 0;
+#X text 373 300 apply a gravity to the right;
+#X msg 85 357 0 1 0;
+#X msg 143 357 0 -1 0;
+#X obj 198 305 part_gravity 0.07 0 0;
+#X obj 198 579 translateXYZ -1 0.5 0;
+#X obj 198 544 rotateXYZ 0 1 0;
+#X floatatom 20 442 0 0 0 0 - - -;
+#X obj 198 414 part_orbitpoint 0 -1 0 0.88;
+#X obj 198 497 part_gravity 0 0 -0.05;
+#X obj 198 220 part_velocity sphere -1 0 0 0.05;
+#X msg 458 96 1 0 0;
+#X text 390 498 apply a gravity in Z;
+#X obj 85 290 metro 2000;
+#X obj 20 290 metro 50;
+#X obj 198 82 part_head 2000;
+#X text 204 60 maximum of 2000 particles;
+#X obj 198 276 part_source 10;
+#N canvas 91 174 290 179 Gem.init 0;
+#X obj 118 46 loadbang;
+#X msg 118 81 reset;
+#X obj 118 113 outlet;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X restore 90 175 pd Gem.init;
+#X obj 79 104 tgl 40 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 55 249 t f f;
+#X obj 20 403 i;
+#X obj 51 403 + 1;
+#X obj 81 403 % 360;
+#X obj 79 149 t f f;
+#N canvas 0 0 450 300 alternate 0;
+#X obj 82 126 inlet;
+#X obj 82 239 outlet;
+#X obj 82 192 select 0 1;
+#X obj 145 239 outlet;
+#X obj 82 147 i;
+#X obj 117 146 == 0;
+#X obj 82 167 t f f;
+#X connect 0 0 4 0;
+#X connect 2 0 1 0;
+#X connect 2 1 3 0;
+#X connect 4 0 6 0;
+#X connect 5 0 4 1;
+#X connect 6 0 2 0;
+#X connect 6 1 5 0;
+#X restore 85 327 pd alternate;
+#X connect 1 0 0 0;
+#X connect 2 0 0 0;
+#X connect 3 0 34 0;
+#X connect 4 0 18 0;
+#X connect 12 0 27 2;
+#X connect 14 0 30 0;
+#X connect 14 0 17 0;
+#X connect 16 0 28 0;
+#X connect 17 0 4 1;
+#X connect 18 0 29 0;
+#X connect 21 0 27 1;
+#X connect 22 0 27 1;
+#X connect 23 0 27 0;
+#X connect 24 0 5 0;
+#X connect 25 0 24 0;
+#X connect 26 0 25 2;
+#X connect 27 0 16 0;
+#X connect 28 0 25 0;
+#X connect 29 0 36 0;
+#X connect 30 0 4 2;
+#X connect 32 0 44 0;
+#X connect 33 0 40 0;
+#X connect 34 0 4 0;
+#X connect 36 0 23 0;
+#X connect 37 0 0 0;
+#X connect 38 0 43 0;
+#X connect 39 0 33 0;
+#X connect 39 1 32 0;
+#X connect 40 0 41 0;
+#X connect 40 0 26 0;
+#X connect 41 0 42 0;
+#X connect 42 0 40 1;
+#X connect 43 0 0 0;
+#X connect 43 1 39 0;
+#X connect 44 0 21 0;
+#X connect 44 1 22 0;
diff --git a/Gem/examples/06.particle/05.twoSrc.pd b/Gem/examples/06.particle/05.twoSrc.pd
new file mode 100644
index 0000000..5884f75
--- /dev/null
+++ b/Gem/examples/06.particle/05.twoSrc.pd
@@ -0,0 +1,173 @@
+#N canvas 336 24 600 774 10;
+#X obj 198 50 gemhead;
+#X obj 198 82 part_head;
+#X obj 198 136 part_color;
+#X obj 198 620 part_draw;
+#X text 329 37 set the color range;
+#X text 299 174 set the size;
+#X text 310 269 set the number per frame;
+#X text 321 588 set the age to kill at;
+#X text 444 196 the velocity domain;
+#X text 442 230 radius = 0.2;
+#X obj 360 61 loadbang;
+#X obj 198 586 part_killold 35;
+#X obj 198 174 part_size 0.8;
+#X text 441 214 a sphere at -1 0 0;
+#X text 361 318 apply a gravity to the right;
+#X obj 198 317 part_gravity 0.07 0 0;
+#X obj 198 461 part_color;
+#X obj 251 383 loadbang;
+#X msg 275 421 0.4 0.4 0.4;
+#X msg 227 420 1 0 0;
+#X obj 198 277 part_source 5;
+#X obj 198 497 part_source 5;
+#X obj 198 537 part_gravity -0.01 -0.02 0;
+#X obj 198 352 part_velocity sphere 0 0.2 0 0.05;
+#X msg 324 96 0.4 0.4 0.4;
+#X msg 423 96 0 1 0;
+#X obj 198 220 part_velocity sphere -0.2 0 0 0.1;
+#X obj 375 419 metro 1000;
+#N canvas 0 22 450 300 tripleRand 0;
+#X obj 94 71 inlet;
+#X obj 94 252 outlet;
+#X obj 94 221 pack 0 0 0;
+#X obj 94 104 t b b b;
+#X obj 94 134 random 1000;
+#X obj 94 154 / 1000;
+#X obj 94 175 * 0.1;
+#X obj 194 134 random 1000;
+#X obj 194 154 / 1000;
+#X obj 294 134 random 1000;
+#X obj 294 154 / 1000;
+#X obj 194 175 * 0.2;
+#X obj 294 175 * 0;
+#X connect 0 0 3 0;
+#X connect 2 0 1 0;
+#X connect 3 0 4 0;
+#X connect 3 1 7 0;
+#X connect 3 2 9 0;
+#X connect 4 0 5 0;
+#X connect 5 0 6 0;
+#X connect 6 0 2 0;
+#X connect 7 0 8 0;
+#X connect 8 0 11 0;
+#X connect 9 0 10 0;
+#X connect 10 0 12 0;
+#X connect 11 0 2 1;
+#X connect 12 0 2 2;
+#X restore 375 453 pd tripleRand (0.1 0.2 0);
+#N canvas 0 22 450 300 v* 0;
+#X obj 90 62 unpack 0 0 0;
+#X obj 90 42 inlet;
+#X obj 90 137 pack 0 0 0;
+#X obj 90 156 outlet;
+#X obj 90 90 * -1;
+#X obj 127 110 * -1;
+#X obj 165 90 * -1;
+#X connect 0 0 4 0;
+#X connect 0 1 5 0;
+#X connect 0 2 6 0;
+#X connect 1 0 0 0;
+#X connect 2 0 3 0;
+#X connect 4 0 2 0;
+#X connect 5 0 2 1;
+#X connect 6 0 2 2;
+#X restore 375 483 pd v* (-1);
+#N canvas 0 22 450 300 tripleLine 0;
+#X obj 94 71 inlet;
+#X obj 94 252 outlet;
+#X obj 94 104 unpack 0 0 0;
+#X obj 94 221 pack 0 0 0;
+#X obj 94 176 line;
+#X msg 94 153 \$1 1000;
+#X obj 164 176 line;
+#X msg 164 153 \$1 1000;
+#X obj 234 176 line;
+#X msg 234 153 \$1 1000;
+#X connect 0 0 2 0;
+#X connect 2 0 5 0;
+#X connect 2 1 7 0;
+#X connect 2 2 9 0;
+#X connect 3 0 1 0;
+#X connect 4 0 3 0;
+#X connect 5 0 4 0;
+#X connect 6 0 3 1;
+#X connect 7 0 6 0;
+#X connect 8 0 3 2;
+#X connect 9 0 8 0;
+#X restore 375 505 pd tripleLine (1000);
+#N canvas 87 154 247 179 Gem.init 0;
+#X obj 118 46 loadbang;
+#X msg 118 81 reset;
+#X obj 118 113 outlet;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X restore 64 238 pd Gem.init;
+#N canvas 340 107 682 322 gemwin 0;
+#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144
+-1 -1 0 1;
+#X obj 102 161 r \$0-gemstart;
+#X obj 102 182 select 1 0;
+#X msg 102 214 create \, 1;
+#X msg 177 215 destroy;
+#X obj 102 239 t a;
+#X obj 318 54 inlet;
+#X obj 318 255 gemwin;
+#X obj 318 100 t a a;
+#X obj 318 287 outlet;
+#X obj 350 128 route create destroy;
+#X obj 350 150 t b;
+#X msg 350 172 1;
+#X obj 390 150 t b;
+#X msg 390 172 0;
+#X obj 350 195 t f;
+#X msg 350 219 set \$1;
+#X text 118 122 rendering;
+#X connect 1 0 2 0;
+#X connect 2 0 3 0;
+#X connect 2 1 4 0;
+#X connect 3 0 5 0;
+#X connect 4 0 5 0;
+#X connect 5 0 8 0;
+#X connect 6 0 8 0;
+#X connect 7 0 9 0;
+#X connect 8 0 7 0;
+#X connect 8 1 10 0;
+#X connect 10 0 11 0;
+#X connect 10 1 13 0;
+#X connect 11 0 12 0;
+#X connect 12 0 15 0;
+#X connect 13 0 14 0;
+#X connect 14 0 15 0;
+#X connect 15 0 16 0;
+#X connect 16 0 0 0;
+#X coords 0 -1 1 1 85 40 1 100 100;
+#X restore 34 255 pd gemwin;
+#X obj 375 392 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
+1;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 2 0 12 0;
+#X connect 10 0 25 0;
+#X connect 10 0 24 0;
+#X connect 11 0 3 0;
+#X connect 12 0 26 0;
+#X connect 15 0 23 0;
+#X connect 16 0 21 0;
+#X connect 17 0 18 0;
+#X connect 17 0 19 0;
+#X connect 18 0 16 2;
+#X connect 19 0 16 1;
+#X connect 20 0 15 0;
+#X connect 21 0 22 0;
+#X connect 22 0 11 0;
+#X connect 23 0 16 0;
+#X connect 24 0 2 1;
+#X connect 25 0 2 2;
+#X connect 26 0 20 0;
+#X connect 27 0 28 0;
+#X connect 28 0 29 0;
+#X connect 29 0 30 0;
+#X connect 30 0 22 1;
+#X connect 31 0 32 0;
+#X connect 33 0 27 0;
diff --git a/Gem/examples/06.particle/06.target.pd b/Gem/examples/06.particle/06.target.pd
new file mode 100644
index 0000000..35237ad
--- /dev/null
+++ b/Gem/examples/06.particle/06.target.pd
@@ -0,0 +1,74 @@
+#N canvas 396 160 600 500 10;
+#X obj 198 50 gemhead;
+#X obj 198 82 part_head;
+#X obj 198 447 part_draw;
+#X obj 198 331 part_gravity 0 -0.01 0;
+#X obj 198 160 part_velocity sphere 0 0.2 0 0.2;
+#X text 310 269 set the number per frame;
+#X text 310 378 set the age to kill at;
+#X text 366 327 gravity to affect the particles;
+#X text 331 94 the velocity domain;
+#X text 329 111 a sphere at 0 \, 0.2 \, 0;
+#X obj 198 270 part_source 25;
+#X obj 198 381 part_killold 45;
+#X text 329 128 radius = 0.2;
+#X obj 198 116 part_size 0.1;
+#X obj 198 236 part_targetcolor 0 0 1;
+#X obj 198 201 part_targetsize 3;
+#N canvas 87 154 247 179 Gem.init 0;
+#X obj 118 46 loadbang;
+#X msg 118 81 reset;
+#X obj 118 113 outlet;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X restore 64 238 pd Gem.init;
+#N canvas 340 107 682 322 gemwin 0;
+#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144
+-1 -1 0 1;
+#X obj 102 161 r \$0-gemstart;
+#X obj 102 182 select 1 0;
+#X msg 102 214 create \, 1;
+#X msg 177 215 destroy;
+#X obj 102 239 t a;
+#X obj 318 54 inlet;
+#X obj 318 255 gemwin;
+#X obj 318 100 t a a;
+#X obj 318 287 outlet;
+#X obj 350 128 route create destroy;
+#X obj 350 150 t b;
+#X msg 350 172 1;
+#X obj 390 150 t b;
+#X msg 390 172 0;
+#X obj 350 195 t f;
+#X msg 350 219 set \$1;
+#X text 118 122 rendering;
+#X connect 1 0 2 0;
+#X connect 2 0 3 0;
+#X connect 2 1 4 0;
+#X connect 3 0 5 0;
+#X connect 4 0 5 0;
+#X connect 5 0 8 0;
+#X connect 6 0 8 0;
+#X connect 7 0 9 0;
+#X connect 8 0 7 0;
+#X connect 8 1 10 0;
+#X connect 10 0 11 0;
+#X connect 10 1 13 0;
+#X connect 11 0 12 0;
+#X connect 12 0 15 0;
+#X connect 13 0 14 0;
+#X connect 14 0 15 0;
+#X connect 15 0 16 0;
+#X connect 16 0 0 0;
+#X coords 0 -1 1 1 85 40 1 100 100;
+#X restore 34 255 pd gemwin;
+#X connect 0 0 1 0;
+#X connect 1 0 13 0;
+#X connect 3 0 11 0;
+#X connect 4 0 15 0;
+#X connect 10 0 3 0;
+#X connect 11 0 2 0;
+#X connect 13 0 4 0;
+#X connect 14 0 10 0;
+#X connect 15 0 14 0;
+#X connect 16 0 17 0;
diff --git a/Gem/examples/06.particle/07.render.pd b/Gem/examples/06.particle/07.render.pd
new file mode 100644
index 0000000..8fd3c0c
--- /dev/null
+++ b/Gem/examples/06.particle/07.render.pd
@@ -0,0 +1,86 @@
+#N canvas 136 52 487 571 10;
+#X obj 167 53 gemhead;
+#X obj 167 81 part_head;
+#X text 293 262 set the number per frame;
+#X text 291 290 set the age to kill at;
+#X text 296 110 the velocity domain;
+#X text 295 125 a sphere at 0 \, 0.2 \, 0;
+#X text 296 144 radius = 0.3;
+#X msg 271 170 0 0.2 0 0.3;
+#X msg 358 169 0.2 0 0 0.3;
+#X obj 167 231 part_velocity sphere 0 0.2 0 0.3;
+#X obj 167 330 part_render;
+#X obj 167 393 sphere 0.2;
+#X obj 47 308 gemhead;
+#X obj 47 331 world_light;
+#X obj 167 128 part_size 1;
+#X msg 257 105 2;
+#X obj 167 204 part_color;
+#X msg 190 150 1 0 0;
+#X obj 167 261 part_source 5;
+#X obj 167 292 part_killold 10;
+#X msg 202 178 0 1 0;
+#X msg 227 104 1;
+#N canvas 87 154 247 179 Gem.init 0;
+#X obj 118 46 loadbang;
+#X obj 118 113 outlet;
+#X msg 118 81 reset \, lighting 1;
+#X connect 0 0 2 0;
+#X connect 2 0 1 0;
+#X restore 66 131 pd Gem.init;
+#N canvas 340 107 682 322 gemwin 0;
+#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144
+-1 -1 0 1;
+#X obj 102 161 r \$0-gemstart;
+#X obj 102 182 select 1 0;
+#X msg 102 214 create \, 1;
+#X msg 177 215 destroy;
+#X obj 102 239 t a;
+#X obj 318 54 inlet;
+#X obj 318 255 gemwin;
+#X obj 318 100 t a a;
+#X obj 318 287 outlet;
+#X obj 350 128 route create destroy;
+#X obj 350 150 t b;
+#X msg 350 172 1;
+#X obj 390 150 t b;
+#X msg 390 172 0;
+#X obj 350 195 t f;
+#X msg 350 219 set \$1;
+#X text 118 122 rendering;
+#X connect 1 0 2 0;
+#X connect 2 0 3 0;
+#X connect 2 1 4 0;
+#X connect 3 0 5 0;
+#X connect 4 0 5 0;
+#X connect 5 0 8 0;
+#X connect 6 0 8 0;
+#X connect 7 0 9 0;
+#X connect 8 0 7 0;
+#X connect 8 1 10 0;
+#X connect 10 0 11 0;
+#X connect 10 1 13 0;
+#X connect 11 0 12 0;
+#X connect 12 0 15 0;
+#X connect 13 0 14 0;
+#X connect 14 0 15 0;
+#X connect 15 0 16 0;
+#X connect 16 0 0 0;
+#X coords 0 -1 1 1 85 40 1 100 100;
+#X restore 36 148 pd gemwin;
+#X connect 0 0 1 0;
+#X connect 1 0 14 0;
+#X connect 7 0 9 2;
+#X connect 8 0 9 2;
+#X connect 9 0 18 0;
+#X connect 10 0 11 0;
+#X connect 12 0 13 0;
+#X connect 14 0 16 0;
+#X connect 15 0 14 1;
+#X connect 16 0 9 0;
+#X connect 17 0 16 1;
+#X connect 18 0 19 0;
+#X connect 19 0 10 0;
+#X connect 20 0 16 2;
+#X connect 21 0 14 1;
+#X connect 22 0 23 0;
diff --git a/Gem/examples/06.particle/08.info.pd b/Gem/examples/06.particle/08.info.pd
new file mode 100644
index 0000000..5b00adb
--- /dev/null
+++ b/Gem/examples/06.particle/08.info.pd
@@ -0,0 +1,117 @@
+#N canvas 22 71 611 571 10;
+#X obj 169 18 gemhead;
+#X obj 168 85 part_head;
+#X text 278 259 set the number per frame;
+#X text 292 291 set the age to kill at;
+#X msg 290 201 0 0.2 0 0.3;
+#X msg 377 200 0.2 0 0 0.3;
+#X obj 168 229 part_velocity sphere 0 0.2 0 0.3;
+#X obj 168 132 part_size 1;
+#X obj 168 254 part_source 5;
+#X obj 168 279 part_killold 10;
+#X obj 169 300 part_info;
+#X obj 169 382 separator;
+#X obj 169 408 translate 1 0 0 0;
+#X obj 169 431 color;
+#X obj 169 471 scale;
+#X msg 278 518 draw line;
+#X msg 257 105 2;
+#X obj 170 502 rotateXYZ;
+#X obj 320 435 unpack 0 0 0;
+#X text 375 400 this is rather velocity;
+#X text 379 416 than rotation;
+#X obj 279 498 loadbang;
+#X obj 170 537 square 0.2;
+#X msg 300 378 \$1 \$2 0;
+#X obj 169 56 rotateXYZ;
+#X floatatom 272 20 5 0 0 0 - - -;
+#X obj 168 205 part_color;
+#X msg 200 180 1 0 0;
+#X msg 252 180 0 0 1;
+#X text 254 362 we don't allow particles spread along the z-axis;
+#X msg 257 76 1;
+#X obj 255 463 * 360;
+#X obj 315 461 * 360;
+#X obj 382 460 * 360;
+#N canvas 87 154 247 179 Gem.init 0;
+#X obj 118 46 loadbang;
+#X msg 118 81 reset;
+#X obj 118 113 outlet;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X restore 64 238 pd Gem.init;
+#N canvas 340 107 682 322 gemwin 0;
+#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144
+-1 -1 0 1;
+#X obj 102 161 r \$0-gemstart;
+#X obj 102 182 select 1 0;
+#X msg 102 214 create \, 1;
+#X msg 177 215 destroy;
+#X obj 102 239 t a;
+#X obj 318 54 inlet;
+#X obj 318 255 gemwin;
+#X obj 318 100 t a a;
+#X obj 318 287 outlet;
+#X obj 350 128 route create destroy;
+#X obj 350 150 t b;
+#X msg 350 172 1;
+#X obj 390 150 t b;
+#X msg 390 172 0;
+#X obj 350 195 t f;
+#X msg 350 219 set \$1;
+#X text 118 122 rendering;
+#X connect 1 0 2 0;
+#X connect 2 0 3 0;
+#X connect 2 1 4 0;
+#X connect 3 0 5 0;
+#X connect 4 0 5 0;
+#X connect 5 0 8 0;
+#X connect 6 0 8 0;
+#X connect 7 0 9 0;
+#X connect 8 0 7 0;
+#X connect 8 1 10 0;
+#X connect 10 0 11 0;
+#X connect 10 1 13 0;
+#X connect 11 0 12 0;
+#X connect 12 0 15 0;
+#X connect 13 0 14 0;
+#X connect 14 0 15 0;
+#X connect 15 0 16 0;
+#X connect 16 0 0 0;
+#X coords 0 -1 1 1 85 40 1 100 100;
+#X restore 34 255 pd gemwin;
+#X connect 0 0 24 0;
+#X connect 1 0 7 0;
+#X connect 4 0 6 2;
+#X connect 5 0 6 2;
+#X connect 6 0 8 0;
+#X connect 7 0 26 0;
+#X connect 8 0 9 0;
+#X connect 9 0 10 0;
+#X connect 10 0 11 0;
+#X connect 10 2 23 0;
+#X connect 10 3 13 1;
+#X connect 10 4 18 0;
+#X connect 10 5 14 1;
+#X connect 11 0 12 0;
+#X connect 12 0 13 0;
+#X connect 13 0 14 0;
+#X connect 14 0 17 0;
+#X connect 15 0 22 0;
+#X connect 16 0 7 1;
+#X connect 17 0 22 0;
+#X connect 18 0 31 0;
+#X connect 18 1 32 0;
+#X connect 18 2 33 0;
+#X connect 21 0 15 0;
+#X connect 23 0 12 2;
+#X connect 24 0 1 0;
+#X connect 25 0 24 2;
+#X connect 26 0 6 0;
+#X connect 27 0 26 1;
+#X connect 28 0 26 2;
+#X connect 30 0 7 1;
+#X connect 31 0 17 1;
+#X connect 32 0 17 2;
+#X connect 33 0 17 3;
+#X connect 34 0 35 0;
diff --git a/Gem/examples/06.particle/09.sink.pd b/Gem/examples/06.particle/09.sink.pd
new file mode 100644
index 0000000..d22b5ac
--- /dev/null
+++ b/Gem/examples/06.particle/09.sink.pd
@@ -0,0 +1,100 @@
+#N canvas 424 93 600 500 10;
+#X obj 198 50 gemhead;
+#X obj 198 82 part_head;
+#X obj 198 136 part_color;
+#X obj 199 447 part_draw;
+#X msg 335 69 0 1 0;
+#X text 329 37 set the color range;
+#X obj 198 174 part_size 1;
+#X text 299 126 set the size;
+#X obj 198 206 part_velocity sphere 0 0.2 0 0.2;
+#X text 310 239 set the number per frame;
+#X text 311 378 set the age to kill at;
+#X text 309 255 gravity to affect the particles;
+#X text 428 174 the velocity domain;
+#X text 426 191 a sphere at 0 \, 0.2 \, 0;
+#X msg 220 413 draw line;
+#X msg 299 413 draw point;
+#X msg 309 151 2;
+#X msg 393 69 1 0 0;
+#X obj 198 240 part_source 25;
+#X obj 199 381 part_killold 45;
+#X text 426 208 radius = 0.2;
+#X msg 126 51 speed 0.1;
+#X obj 245 303 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
+1;
+#X floatatom 389 314 5 0 0 0 - - -;
+#X msg 389 331 0 \$1 0 0 1 0;
+#X obj 198 271 part_gravity 0 -0.1 0;
+#X obj 198 355 part_sink plane 0 -1 0 0 1 0;
+#X msg 245 322 kill \$1;
+#X obj 392 293 hsl 128 15 -4 0.1 0 0 empty empty empty -2 -6 0 8 -262144
+-1 -1 0 1;
+#N canvas 87 154 247 179 Gem.init 0;
+#X obj 118 46 loadbang;
+#X msg 118 81 reset;
+#X obj 118 113 outlet;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X restore 64 238 pd Gem.init;
+#N canvas 340 107 682 322 gemwin 0;
+#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144
+-1 -1 0 1;
+#X obj 102 161 r \$0-gemstart;
+#X obj 102 182 select 1 0;
+#X msg 102 214 create \, 1;
+#X msg 177 215 destroy;
+#X obj 102 239 t a;
+#X obj 318 54 inlet;
+#X obj 318 255 gemwin;
+#X obj 318 100 t a a;
+#X obj 318 287 outlet;
+#X obj 350 128 route create destroy;
+#X obj 350 150 t b;
+#X msg 350 172 1;
+#X obj 390 150 t b;
+#X msg 390 172 0;
+#X obj 350 195 t f;
+#X msg 350 219 set \$1;
+#X text 118 122 rendering;
+#X connect 1 0 2 0;
+#X connect 2 0 3 0;
+#X connect 2 1 4 0;
+#X connect 3 0 5 0;
+#X connect 4 0 5 0;
+#X connect 5 0 8 0;
+#X connect 6 0 8 0;
+#X connect 7 0 9 0;
+#X connect 8 0 7 0;
+#X connect 8 1 10 0;
+#X connect 10 0 11 0;
+#X connect 10 1 13 0;
+#X connect 11 0 12 0;
+#X connect 12 0 15 0;
+#X connect 13 0 14 0;
+#X connect 14 0 15 0;
+#X connect 15 0 16 0;
+#X connect 16 0 0 0;
+#X coords 0 -1 1 1 85 40 1 100 100;
+#X restore 34 255 pd gemwin;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 2 0 6 0;
+#X connect 4 0 2 1;
+#X connect 6 0 8 0;
+#X connect 8 0 18 0;
+#X connect 14 0 3 0;
+#X connect 15 0 3 0;
+#X connect 16 0 6 1;
+#X connect 17 0 2 2;
+#X connect 18 0 25 0;
+#X connect 19 0 3 0;
+#X connect 21 0 1 0;
+#X connect 22 0 27 0;
+#X connect 23 0 24 0;
+#X connect 24 0 26 2;
+#X connect 25 0 26 0;
+#X connect 26 0 19 0;
+#X connect 27 0 26 0;
+#X connect 28 0 23 0;
+#X connect 29 0 30 0;