diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-00.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-00.png
new file mode 100644
index 0000000000000000000000000000000000000000..b18cc68b9279e9238febd16e8012dd91f4b050ba
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-00.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-01.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-01.png
new file mode 100644
index 0000000000000000000000000000000000000000..478adb012a8f316f723ca8eb43e1a86e1d498313
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-01.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-02.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-02.png
new file mode 100644
index 0000000000000000000000000000000000000000..979e334d47df0d2b6a18746b40ccef54243ca959
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-02.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-03.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-03.png
new file mode 100644
index 0000000000000000000000000000000000000000..f447d1de4fc8d204a49e54adee6a9d1f9d16ae0e
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-03.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-04.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-04.png
new file mode 100644
index 0000000000000000000000000000000000000000..0a89a03415d67a6f30645951091616d03d866148
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-04.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-05.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-05.png
new file mode 100644
index 0000000000000000000000000000000000000000..68a86b7a34317695a1e329af3b59c0ff5b0737f1
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-05.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-06.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-06.png
new file mode 100644
index 0000000000000000000000000000000000000000..196849b1183c8e27fd28c7e833847b6b6dd2b79b
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-06.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-07.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-07.png
new file mode 100644
index 0000000000000000000000000000000000000000..824131d09e8063a3c6563d446c50b4391dcdc3ce
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-07.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-08.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-08.png
new file mode 100644
index 0000000000000000000000000000000000000000..88096af4e40cddbb9dedafe3e634031624825236
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-08.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-09.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-09.png
new file mode 100644
index 0000000000000000000000000000000000000000..d3c2ba3541cd909b2643a8ce898619e48b010476
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-09.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-00.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-00.png
new file mode 100644
index 0000000000000000000000000000000000000000..eec9d7cc1b37ceb31a4a41eabb02d5f597a12200
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-00.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-01.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-01.png
new file mode 100644
index 0000000000000000000000000000000000000000..8f955f447159f0f666c6c1d3a3585bc9c28cbd64
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-01.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-02.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-02.png
new file mode 100644
index 0000000000000000000000000000000000000000..7a41ac46b2490c23307fbfc670a3614d665270b4
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-02.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-03.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-03.png
new file mode 100644
index 0000000000000000000000000000000000000000..9592d44a4bd45c0b12de5487a3c78876086b1760
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-03.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-04.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-04.png
new file mode 100644
index 0000000000000000000000000000000000000000..8f9b130d4ef5a693e659c84928432903756c9059
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-04.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-05.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-05.png
new file mode 100644
index 0000000000000000000000000000000000000000..b5245fb6034dec4b6d6d9a3eba9819da50278585
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-05.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-06.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-06.png
new file mode 100644
index 0000000000000000000000000000000000000000..e65376a12a3855d996531a185302bb1ba7083362
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-06.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-07.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-07.png
new file mode 100644
index 0000000000000000000000000000000000000000..01e1c7b37fa8cd5f6e0ba7bfa04fb89f14f421b8
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-07.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-08.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-08.png
new file mode 100644
index 0000000000000000000000000000000000000000..8c0c60f1ae8b11f89b9702aeafa19f6346074eed
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-08.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-09.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-09.png
new file mode 100644
index 0000000000000000000000000000000000000000..5a4bc697f2c0685cb9dafd1b8d0faf894204b567
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-09.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-00.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-00.png
new file mode 100644
index 0000000000000000000000000000000000000000..83e2e595fed3160e26385c1a9bc9304e16bcd2cc
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-00.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-01.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-01.png
new file mode 100644
index 0000000000000000000000000000000000000000..5da3a967ebf8c482b97fe196c3ffcd24169dc563
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-01.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-02.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-02.png
new file mode 100644
index 0000000000000000000000000000000000000000..eb635a27e934ab9d45a524f26ce7965567a02599
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-02.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-03.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-03.png
new file mode 100644
index 0000000000000000000000000000000000000000..9845f43482ffd2bdd7b103f0a76d75d58bfb6af0
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-03.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-04.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-04.png
new file mode 100644
index 0000000000000000000000000000000000000000..4323a8943d5f233fc34eb077e067529c946f492d
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-04.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-05.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-05.png
new file mode 100644
index 0000000000000000000000000000000000000000..39a4e07469ec5ca14ae1e670a3ca53c408b08560
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-05.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-06.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-06.png
new file mode 100644
index 0000000000000000000000000000000000000000..2b781cc2fb567a981f638783b66f94b0fe38ef2c
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-06.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-07.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-07.png
new file mode 100644
index 0000000000000000000000000000000000000000..92195204e14d7a9843a0fed8f6a318b5c87f860c
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-07.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-08.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-08.png
new file mode 100644
index 0000000000000000000000000000000000000000..67f882f11c0b19e7768da14feea32fef5b1f7858
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-08.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-09.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-09.png
new file mode 100644
index 0000000000000000000000000000000000000000..721f85c1f5eb4ebc7c4f378ccfd5681d590f1a62
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-09.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-00.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-00.png
new file mode 100644
index 0000000000000000000000000000000000000000..b2a9cd5a970d78077e0518cea9d9387a7688a9cc
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-00.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-01.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-01.png
new file mode 100644
index 0000000000000000000000000000000000000000..872c55d38aeff764c8246d8b6c8e66a072df1947
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-01.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-02.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-02.png
new file mode 100644
index 0000000000000000000000000000000000000000..b4e39a82bc0165f72f5422aab7b85891e81e72f9
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-02.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-03.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-03.png
new file mode 100644
index 0000000000000000000000000000000000000000..2762076f66c6a34674311ca4f00ffb639adc7114
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-03.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-04.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-04.png
new file mode 100644
index 0000000000000000000000000000000000000000..4f4815fd05736a2b607cff3228d4ee3fe5017df3
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-04.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-05.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-05.png
new file mode 100644
index 0000000000000000000000000000000000000000..099ed69ebe474b87bed89f0331391c19f08e1559
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-05.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-06.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-06.png
new file mode 100644
index 0000000000000000000000000000000000000000..8ec7e8fc1316d658cc4c33cc18df4299231df923
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-06.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-07.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-07.png
new file mode 100644
index 0000000000000000000000000000000000000000..6bdee06bd80e12990d6ecc67b733d63aa79e436b
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-07.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-08.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-08.png
new file mode 100644
index 0000000000000000000000000000000000000000..3abacd3dad053732bbe0a73135730f3429d0d2c6
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-08.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-09.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-09.png
new file mode 100644
index 0000000000000000000000000000000000000000..9b625e9b5058aa9bed8d71a9b4fbd4a504a86275
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-09.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-00.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-00.png
new file mode 100644
index 0000000000000000000000000000000000000000..2c9bfd1e0b39a97ce91c03141e30b44348a6c8e5
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-00.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-01.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-01.png
new file mode 100644
index 0000000000000000000000000000000000000000..8447111c20aa294bf28a21abcd92f28cb7ee725c
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-01.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-02.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-02.png
new file mode 100644
index 0000000000000000000000000000000000000000..9c79a128b6081abe4df11a05857bb0957edaff9d
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-02.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-03.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-03.png
new file mode 100644
index 0000000000000000000000000000000000000000..6db04eb5360585698159d430da971cca6d8a1e12
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-03.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-04.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-04.png
new file mode 100644
index 0000000000000000000000000000000000000000..0d6febcd7e924190173280752ecf3ca1b6f3c58c
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-04.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-05.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-05.png
new file mode 100644
index 0000000000000000000000000000000000000000..c34471ea7ad79523b933f0b05ee2fbd4d48b1fc7
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-05.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-06.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-06.png
new file mode 100644
index 0000000000000000000000000000000000000000..239d863a279e82dab07fb3ff3e4caaba5f1a2311
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-06.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-07.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-07.png
new file mode 100644
index 0000000000000000000000000000000000000000..d26f6d2b214cb7e0bb2cb4b240ebee1a2cc4c3c8
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-07.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-08.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-08.png
new file mode 100644
index 0000000000000000000000000000000000000000..84556364c4d48b1bbd23bbcb8d231d750e657595
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-08.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-09.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-09.png
new file mode 100644
index 0000000000000000000000000000000000000000..db988cdb144eb60eb8b7bfb44b5a9578b6184d4e
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-09.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-0-tiles-00.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-0-tiles-00.png
new file mode 100644
index 0000000000000000000000000000000000000000..ca182080720e00cc0fa4bcca0ce3f0564f683a30
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-0-tiles-00.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-0-tiles-01.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-0-tiles-01.png
new file mode 100644
index 0000000000000000000000000000000000000000..56d0fbdbb136a94bd6f5d9be42e732c1f7e2da03
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-0-tiles-01.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-0-tiles-02.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-0-tiles-02.png
new file mode 100644
index 0000000000000000000000000000000000000000..66d6dd157942fd101c6f1f16563d649c8b1e4c7f
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-0-tiles-02.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-0-tiles-03.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-0-tiles-03.png
new file mode 100644
index 0000000000000000000000000000000000000000..59c73c2316023be040e5059aa3d9f1983628c4d2
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-0-tiles-03.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-1-tiles-00.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-1-tiles-00.png
new file mode 100644
index 0000000000000000000000000000000000000000..b2ea85492ada6af058ca9e59479cce49a2a5aeae
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-1-tiles-00.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-1-tiles-01.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-1-tiles-01.png
new file mode 100644
index 0000000000000000000000000000000000000000..fc3e25be55e037c1ca33a202a56b395aa8010e05
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-1-tiles-01.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-1-tiles-02.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-1-tiles-02.png
new file mode 100644
index 0000000000000000000000000000000000000000..0c64cf9fba6cf3d8ffc1570a181789d4067c7b96
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-1-tiles-02.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-1-tiles-03.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-1-tiles-03.png
new file mode 100644
index 0000000000000000000000000000000000000000..0a9e03a24722229c7c261b07428c72fa4ecebe8e
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-1-tiles-03.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-2-tiles-00.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-2-tiles-00.png
new file mode 100644
index 0000000000000000000000000000000000000000..1bdf3556ed1f1bcc70a944bb076465c00be1ea22
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-2-tiles-00.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-2-tiles-01.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-2-tiles-01.png
new file mode 100644
index 0000000000000000000000000000000000000000..033861401f0957f1f181807db6f3d1d4bc2a9af1
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-2-tiles-01.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-2-tiles-02.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-2-tiles-02.png
new file mode 100644
index 0000000000000000000000000000000000000000..60372a1cbe781dac92160bf6bf2fb8fb354bdd88
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-2-tiles-02.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-2-tiles-03.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-2-tiles-03.png
new file mode 100644
index 0000000000000000000000000000000000000000..e9a884815a3e0b8d61e851f3a0d9e9a0512f8537
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-2-tiles-03.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-tiles-00.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-tiles-00.png
new file mode 100644
index 0000000000000000000000000000000000000000..597eab585df65d916fe2fba133a31cdc2c4cc14d
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-tiles-00.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-tiles-01.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-tiles-01.png
new file mode 100644
index 0000000000000000000000000000000000000000..7a0be78c7f17eb76d04f89435494e1624580b623
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-tiles-01.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-tiles-02.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-tiles-02.png
new file mode 100644
index 0000000000000000000000000000000000000000..36c0b4da139c3206e480a7e134cda453caea90b4
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-tiles-02.png differ
diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-tiles-03.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-tiles-03.png
new file mode 100644
index 0000000000000000000000000000000000000000..7315e9ffad5087c323d40d16e5fc6b86b6245f37
Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-tiles-03.png differ
diff --git a/pd/nw/pd_canvas.html b/pd/nw/pd_canvas.html
index 18f74ee1f28e28f19e361ccb172c981c7cd39396..6be95dc7a17c5d0b3f96233d2a6caefac0ed1bc4 100644
--- a/pd/nw/pd_canvas.html
+++ b/pd/nw/pd_canvas.html
@@ -156,7 +156,7 @@ var canvas_events = (function() {
                     pdgui.gui_canvas_sendkey(name, 1, evt, hack);
                     pdgui.set_keymap(key_code, hack);
                 }
-                pdgui.gui_post("keydown time: keycode is " + evt.keyCode);
+//                pdgui.gui_post("keydown time: keycode is " + evt.keyCode);
                 last_keydown = evt.keyCode;
                 //evt.stopPropagation();
                 //evt.preventDefault();
@@ -176,7 +176,7 @@ var canvas_events = (function() {
 
                 pdgui.gui_canvas_sendkey(name, 1, evt, evt.charCode);
                 pdgui.set_keymap(last_keydown, evt.charCode);
-                pdgui.gui_post("keypress time: charcode is " + evt.charCode);
+//                pdgui.gui_post("keypress time: charcode is " + evt.charCode);
                 // Don't do things like scrolling on space, arrow keys, etc.
                 //evt.stopPropagation();
                 evt.preventDefault();
@@ -184,7 +184,7 @@ var canvas_events = (function() {
             keyup: function(evt) {
                 var my_char_code = pdgui.get_char_code(evt.keyCode);
                 pdgui.gui_canvas_sendkey(name, 0, evt, my_char_code);
-                pdgui.gui_post("keyup time: charcode is: " + my_char_code);
+//                pdgui.gui_post("keyup time: charcode is: " + my_char_code);
                 evt.stopPropagation();
                 evt.preventDefault();
             },
diff --git a/pd/nw/pdgui.js b/pd/nw/pdgui.js
index 02f767c2c05bb7a814e4d40dcc753ef4e92dc472..d854f3f3b95ad2926f7a06f89cad49aac84188e6 100644
--- a/pd/nw/pdgui.js
+++ b/pd/nw/pdgui.js
@@ -13,7 +13,7 @@ exports.get_pwd = function() {
 }
 
 var fs = require('fs');     // for fs.existsSync
-var path = require('path'); // for path.dirname path.extname
+var path = require('path'); // for path.dirname path.extname path.join
 
 // local strings
 var lang = require('./pdlang.js');
@@ -3083,6 +3083,124 @@ function gui_drawnumber_vis(cid, parent_tag, tag, x, y, scale_x, scale_y,
     }
 }
 
+var drawimage_data = {}; // for storing base64 image data associated with
+                         // each [draw image] command
+exports.flub = drawimage_data;
+
+function gui_drawimage_new(obj_tag, file_path, canvasdir, flags) {
+    var drawsprite = 1,
+        image_seq,
+        i,
+        matchchar = '*',
+        files,
+        ext,
+        img; // dummy image to measure width and height
+    image_seq = flags & drawsprite;
+    if (!path.isAbsolute(file_path)) {
+        file_path = path.join(canvasdir, file_path);
+    }
+    file_path = path.normalize(file_path);
+    if (fs.existsSync(file_path) && fs.lstatSync(file_path).isDirectory()) {
+
+    }
+    files = fs.readdirSync(file_path)
+                .sort(); // Note that js's 'sort' method doesn't do the
+                         // "right thing" for numbers. For that we'd need
+                         // to provide our own sorting function
+    drawimage_data[obj_tag] = []; // create empty array for base64 image data
+    for (i = 0; i < files.length && i < 1000; i++) {
+        ext = path.extname(files[i]);
+
+// todo: tolower()
+
+        if (ext === '.gif' ||
+            ext === '.jpg' ||
+            ext === '.png' ||
+            ext === '.jpeg' ||
+            ext === '.svg') {
+
+            gui_post("we got an image at index " + i + ": " + files[i]);
+            // Now add an element to that array with the image data
+            drawimage_data[obj_tag].push({
+                type: ext === '.jpeg' ? 'jpg' : ext.slice(1),
+                data: fs.readFileSync(path.join(file_path, files[i]),'base64')
+            });
+        }
+    }
+    gui_post("no of files: " + i);
+    if (i > 0) {
+        img = new pd_window.Image(); // create an image in the pd_window context
+        img.onload = function() {
+            pdsend(obj_tag + ' size ' + this.width + ' ' + this.height);
+        };
+        img.src = 'data:image/' + drawimage_data[obj_tag][0].type +
+            ';base64,' + drawimage_data[obj_tag][0].data;
+    } else {
+        gui_post("drawimage: warning: no images loaded");
+    }
+}
+
+function gui_drawimage_vis(cid, x, y, obj_tag, seqno, parent_tag) {
+    var item,
+        g = get_item(cid, parent_tag), // main <g> within the scalar
+        len = drawimage_data[obj_tag].length,
+        i,
+        img,
+        image_container;
+    if (len < 1) {
+        return;
+    }
+    // Wrap around for out-of-bounds sequence numbers
+    if (seqno >= len || seqno < 0) {
+        seqno %= len;
+    }
+    image_container = create_item(cid, 'g', {
+        id: obj_tag + 'image_container'
+    });
+    for (i = 0; i < len; i++) {
+        item = create_item(cid, 'image', {
+            x: x,
+            y: y,
+            id: obj_tag + i,
+            visibility: seqno === i ? 'visible' : 'hidden',
+            preserveAspectRatio: "xMinYMin meet"
+        });
+        item.setAttributeNS('http://www.w3.org/1999/xlink', 'href', 
+            'data:image/' + drawimage_data[obj_tag][i].type + ';base64,' +
+             drawimage_data[obj_tag][i].data);
+        image_container.appendChild(item);
+    }
+    g.appendChild(image_container);
+
+    // Hack to set correct width and height
+    img = new pd_window.Image();
+    img.onload = function() {
+        var w = this.width,
+            h = this.height;
+        for (i = 0; i < len; i++) {
+            configure_item(get_item(cid, obj_tag + i), {
+                width: w,
+                height: h
+            });
+        }
+    };
+    img.src = 'data:image/' + drawimage_data[obj_tag][0].type +
+        ';base64,' + drawimage_data[obj_tag][0].data;
+}
+
+function gui_drawimage_index(cid, obj_tag, index) {
+    var i,
+        len = drawimage_data[obj_tag].length,
+        image_container = get_item(cid, obj_tag + 'image_container'),
+        last_image,
+        image = image_container.childNodes[index],
+        last_image = image_container.querySelectorAll('[visibility="visible"]');
+        for (i = 0; i < last_image.length; i++) {
+            configure_item(last_image[i], { visibility: 'hidden' });
+        }
+    configure_item(image, { visibility: 'visible' });
+}
+
 function add_popup(cid, popup) {
     popup_menu[cid] = popup;
 }
diff --git a/pd/src/g_template.c b/pd/src/g_template.c
index 9833b27b7c1e206c67bfed4efde635558ffc37e6..93ec6371dd92031adc77754d9c86802776a13333 100644
--- a/pd/src/g_template.c
+++ b/pd/src/g_template.c
@@ -1678,9 +1678,11 @@ void svg_sendupdate(t_svg *x, t_canvas *c, t_symbol *s,
     }
     else if (s == gensym("index"))
     {
-        sys_vgui("pdtk_drawimage_index .x%lx.c .x%lx .draw%lx.%lx %d\n",
-            glist_getcanvas(c), parent, parent, data, drawimage_getindex(parent,
-                template, data)); 
+        //sys_vgui("pdtk_drawimage_index .x%lx.c .x%lx .draw%lx.%lx %d\n",
+        //    glist_getcanvas(c), parent, parent, data, drawimage_getindex(parent,
+        //        template, data)); 
+        gui_vmess("gui_drawimage_index", "xxi",
+            glist_getcanvas(c), parent, drawimage_getindex(parent, template, data));
     }
     else if (s == gensym("points"))
     {
@@ -6825,7 +6827,7 @@ static void *drawimage_new(t_symbol *classsym, int argc, t_atom *argv)
     x->x_deleteme = 0;
     char *classname = classsym->s_name;
     char buf[50];
-    sprintf(buf, ".x%lx", (t_int)x);
+    sprintf(buf, "x%lx", (t_int)x);
     pd_bind(&x->x_obj.ob_pd, gensym(buf));
     int flags = 0;
     
@@ -6848,8 +6850,13 @@ static void *drawimage_new(t_symbol *classsym, int argc, t_atom *argv)
        the source. ".x%lx" is the name for the parent tk image and
        ".x%lx.i" is the tag given to a scalar's canvas image item.
     */
-    sys_vgui("pdtk_drawimage_new .x%lx {%s} {%s} %d\n", (t_int)x,
-        x->x_img->s_name, dir->s_name, x->x_flags);
+    //sys_vgui("pdtk_drawimage_new .x%lx {%s} {%s} %d\n", (t_int)x,
+    //    x->x_img->s_name, dir->s_name, x->x_flags);
+    gui_vmess("gui_drawimage_new", "xssi",
+        x,
+        x->x_img->s_name,
+        dir->s_name,
+        x->x_flags);
     post("deleteme is %d", x->x_deleteme);
     return (x);
 }
@@ -6858,6 +6865,7 @@ void drawimage_size(t_drawimage *x, t_float w, t_float h)
 {
     x->x_w = w;
     x->x_h = h;
+post("w is %g and h is %g", w, h);
 }
 
 static int drawimage_getindex(void *z, t_template *template, t_word *data)
@@ -7068,17 +7076,31 @@ static void drawimage_vis(t_gobj *z, t_glist *glist, t_glist *parentglist,
         sys_vgui("pdtk_drawimage_vis .x%lx.c %d %d .x%lx .x%lx.i %d ",*/
         int xloc = fielddesc_getcoord(&x->x_xloc, template, data, 0);
         int yloc = fielddesc_getcoord(&x->x_yloc, template, data, 0);
-        sys_vgui("pdtk_drawimage_vis .x%lx.c %d %d .x%lx .x%lx.i %d \\\n",
-            glist_getcanvas(glist), xloc, yloc, x, data,
-            (int)fielddesc_getfloat(&x->x_value, template, data, 0));
-        //sys_vgui(".x%lx.x%lx.template%lx scalar%lx\n", glist_getcanvas(glist),
-        //    glist, data, sc);
-        sys_vgui(".x%lx.x%lx.template%lx scalar%lx %s%lx.%lx "
-                 ".draw%lx.%lx\n", glist_getcanvas(glist),
-            glist, data, sc,
-            (in_array ? ".scelem" : ".dgroup"),
-            (in_array ? parentglist : parent), data,
-            x, data);
+
+        //sys_vgui("pdtk_drawimage_vis .x%lx.c %d %d .x%lx .x%lx.i %d \\\n",
+        //    glist_getcanvas(glist), xloc, yloc, x, data,
+        //    (int)fielddesc_getfloat(&x->x_value, template, data, 0));
+        //sys_vgui(".x%lx.x%lx.template%lx scalar%lx %s%lx.%lx "
+        //         ".draw%lx.%lx\n", glist_getcanvas(glist),
+        //    glist, data, sc,
+        //    (in_array ? ".scelem" : ".dgroup"),
+        //    (in_array ? parentglist : parent), data,
+        //    x, data);
+
+        char parent_tagbuf[MAXPDSTRING];
+        sprintf(parent_tagbuf,"%s%lx.%lx",
+            in_array ? "scelem" : "dgroup",
+            in_array ? (long unsigned int)parentglist : (long unsigned int)parent,
+            (long unsigned int)data);
+
+        gui_vmess("gui_drawimage_vis", "xiixis",
+            glist_getcanvas(glist),
+            xloc,
+            yloc,
+            x,
+            (int)fielddesc_getfloat(&x->x_value, template, data, 0),
+            parent_tagbuf);
+
         /* need to revisit all these tags, they are getting confusing... */
 //        sys_vgui(".x%lx.c itemconfigure .x%lx.x%lx.template%lx\\\n",
 //            glist_getcanvas(glist), glist_getcanvas(glist), glist, data);